2013-06-24 11 views
0

하나의 웹 사이트에서 기사 및 기타 콘텐츠를 검색하고 싶습니다. 크롤러에 대한 아이디어를 얻었고 먼 페이지를 열어서 정규식에 따라 텍스트 부분을 얻을 수 있다고 가정합니다. 궁금한 점은 단일 페이지 (또는 페이지 매김)뿐만 아니라 전체 웹 사이트에서 각 요소에 대한 크롤러를 하나씩 실행하고 프로세스의 기존 URL을 잊지 않고 검색 할 수 있다는 것입니다.전체 웹 사이트의 PHP 크롤러

일회성이므로 이걸 깨끗하게 처리 할 필요가 없습니다. 웹 에이전시와 계약을 맺고 나 자신의 데이터베이스 덤프에 대해 엄청난 돈을 청구하려고합니다. 따라서 빠른 대안을 찾아야합니다. 나를 시작할 수 있도록 나를 걸을 수 있습니까?

감사합니다.

답변

0

사이트 맵으로 사이트의 페이지를 확인할 수는 있지만 페이지가 사이트 맵에 없을 수 있으므로 가장 신뢰할 수있는 솔루션은 아닙니다. IMO는 가능한 한 많은 링크를 크롤링 할 때까지 검색된 데이터의 정규 표현식을 사용하여 모든 사이트 관련 링크를 찾는 홈 페이지에서 시작하여 재귀 함수를 사용하여 데이터를 수집하는 것이 가장 좋습니다. 이것은 스파이더 웹 효과를 가지며 많은 양의 데이터를 가져옵니다.

Google은 현재 잘못 구현 된 API 시스템에서 약 5,000 페이지의 데이터를 가져 오기 위해 유사한 구현 방법을 사용합니다.

+0

많은 양의 데이터가 필요하지 않으며 100 % 확실성으로 전체 데이터가 필요합니다. – Baylock

+1

불행히도 100 % 확실성을 가진 모든 페이지를 얻는 방법은 없습니다. 찾을 수없는 파일에 대한 참조가 없습니다 - 특히 자동으로! – Chris

+0

예를 들어 javascript가 추가되었습니다. –

0

사이트마다 모든 링크를 가져 오지 않으면이를 수행 할 수 없습니다. 제 3 자 스크립트를 사용하는 경우에도 최소한 항상 많은 HTTP 요청을 보내야합니다.

가장 쉬운 방법은 wget을 -r 매개 변수와 함께 사용하면 전체 사이트를 다운로드 한 다음 다운로드 한 파일에서 주어진 정규식을 검색하는 것입니다.

+0

wget이 나에게 파일을 가져오고 파일이 필요 없으며, 내가 가져온 것을 정렬 및 필터링 (텍스트 만)하고 새 데이터베이스에 저장해야합니다. 나는 이미 사이트 빨판 소프트웨어를 사용했다. 그러나 나는 다운로드 된 모든 파일들로부터 데이터를 얻고 정렬하는 방법을 알아 내야 만했다. – Baylock

+0

내 답변을 구체화하려면 저를 인질로 잡고있는 웹 대행사를 떠나고 자 할 때 새 서버에서 내 웹 사이트를 다시 실행해야합니다. 따라서 요점은 내 바탕 화면에서 데이터를 검색하는 것이 아니라 원시 데이터를 수집하고, 정렬하고, 필터링하고, 결국 새 웹 사이트에 대한 새 데이터베이스를 다시 작성하는 것입니다. 이를 염두에두고 wget을 가진 승자가 없다고 생각합니다. – Baylock