使用curl来抓取大页面

时间:2012-08-22 19:58:56

标签: php curl screen-scraping

我正试图从一个受欢迎的新闻网站上搜索使用curl进行学术研究的评论。对于篇幅为<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

此页面正常运行:http://www.guardian.co.uk/commentisfree/2012/aug/22/letter-from-india-women-drink?commentpage=all#start-of-comments

但是这个只返回36条评论,尽管总共有700多条评论:http://www.guardian.co.uk/commentisfree/2012/aug/21/everyones-talking-about-rape?commentpage=all#start-of-comments

为什么它会为那些有大量评论的文章而苦苦挣扎?

1 个答案:

答案 0 :(得分:2)

您的评论页面已被页面化。每个页面都包含不同的评论。您必须请求所有评论分页链接。

参数page=x会附加到其他网页的网址上。

获得基页然后用页面参数搜索所有链接并依次请求每个链接可能会很好吗?

正如迈克克里斯滕森指出你是否可以使用内置功能的python和scrapy。你只需要指定注释所在的元素,python将为你抓取页面上的所有链接:)