2012-08-22 2 views
0

컬을 사용하여 학술 연구에 대한 인기 뉴스 사이트의 의견을 긁어 내려고하고 있습니다. < 300 개의 댓글을 가진 기사에는 문제가 없지만 그 후에는 어려움을 겪습니다. 순간대형 페이지를 긁어내는 데 컬 사용

$handle = curl_init($url); 
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); 
$html = curl_exec($handle); 
curl_close($handle); 
echo $html; //just to see what's been scraped 

이 페이지는 잘 작동 :하지만이 중 하나는 총 700 거기에도 불구하고 36 개 의견을 반환

http://www.guardian.co.uk/commentisfree/2012/aug/22/letter-from-india-women-drink?commentpage=all#start-of-comments : http://www.guardian.co.uk/commentisfree/2012/aug/21/everyones-talking-about-rape?commentpage=all#start-of-comments

왜의 톤과 기사 고투하고있다

코멘트?

+1

요소를 지정해야합니다 지적 체크 아웃해야합니다 [Scrapy] (http://scrapy.org/) ... –

+0

페이지 매김이 사용됩니다. 페이지 수를 알고주기를 사용하면 각 페이지에서 의견을 얻을 수 있습니다. –

답변

2

귀하의 의견 페이지는 페이지가 표시됩니다. 각 페이지에는 다른 의견이 들어 있습니다. 모든 의견 매김 링크를 요청해야합니다.

매개 변수 page=x이 다른 페이지의 URL에 추가됩니다.

기본 페이지를 얻은 다음 페이지 매개 변수가있는 모든 링크를 검색하고 각 페이지를 차례로 요청하는 것이 좋습니다.

마이크 크리스텐슨은 파이썬을 사용하고 그 기능이 내장되어 scrapy 수 있다면. 당신은 그냥 코멘트가에 위치하고 있으며 파이썬 당신을 위해 페이지의 모든 링크를 크롤링합니다 :)

+2

BTW, 프로젝트를 다시 작성하지 않거나 새로운 것을 배우고 싶지 않은 경우 ... 약 20 분 내에 Scrapy를 실행하여 백화점 웹 사이트에서 데이터를 크롤링하고 내 인생에서 파이썬의 라인! –

+0

모든 답장을 보내 주셔서 감사합니다. 컬링을 실행하는 url에 "? commentpage = all"을 추가하여 페이지 매김 문제를 극복했습니다. 최대 350 개의 주석이있는 페이지에서는 잘 작동하지만 이후에는 페이지 매김이 다시 시작되고 마지막 50 개 정도만 주석을 긁습니다. 컬 요청이 완전히 실행되지 않았거나 타임 아웃되고있는 것처럼 느껴집니다. 나는 CURLOPT_TIMEOUT을 60 초로 연장하여 작업을 완료 할 수있는 충분한 시간을 주려고했지만이 것은 도움이되지 않았다. 나는 Scrapy를 확실히 체크 할 것이지만 파이썬을 사용한 적은 한번도 없다. 다시 한번 감사드립니다. – charlieperry

관련 문제