2012-08-22 62 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 

目前此頁正常工作:http://www.guardian.co.uk/commentisfree/2012/aug/22/letter-from-india-women-drink?commentpage=all#start-of-comments

但它只盡管總有被700+返回36篇評論: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。

這可能是很好的獲取基頁,然後搜索頁面參數的所有鏈接,並要求每個這些反過來?

麥克克里斯滕森指出,如果你可以使用Python和scrapy該功能是內置的。你只需要指定元素的註釋位於和Python會抓取網頁上的所有鏈接爲你:)

+2

順便說一句,如果你害怕重寫你的項目或者不想學習新東西......我在20分鐘內就開始運行Scrapy並從百貨公司網站上抓取一些數據,而我從來沒有寫過我的生活中的Python線! –

+0

感謝所有答覆。 我通過在執行curl的url上追加「?commentpage = all」來解決分頁問題。對於多達350條評論的頁面,它可以正常工作,但在此之後,分頁再次啓動,並且只會刪除最近的50條評論。它幾乎感覺捲曲請求沒有完全執行或正在超時。我試着將CURLOPT_TIMEOUT延長到60秒,以便有足夠的時間來完成任務,但這似乎沒有幫助。 我一定會檢查Scrapy,但我從來沒有使用過Python,並且我的截止日期非常近。 再次感謝! – charlieperry