2016-03-02 41 views
0

時候當我試圖抓取此網頁:使用遇到trustAsHtmlFilter爬行

scrapy shell url 

http://www.cvs.com/shop/household-grocery/electronics/computer-supplies/avery-pin-fed-printers-computer-label-0-93-in-x-3-in-white-5000-pack-prodid-934273?skuId=934273

然後做一個

view(response) 

我看到頁面上顯示trustAsHtmlFilter。頁面佈局在那裏,但是沒有顯示所有的內容。所以我猜這個網站使用這個過濾器來阻止我的抓取工具。

我做過谷歌它,它似乎像這個過濾器來自AngularJS?不知道這一點

所以我的問題是:

  1. 什麼可能是觸發此過濾器的原因是什麼?我幾天前爬過這個頁面,當時很好。

  2. 有沒有辦法解決這個問題?

謝謝!

+0

您是否嘗試過在請求中使用'user agent'? 'scrapy shell -s USER_AGENT ='user agent''http:// www.example.com'' – Rahul

+0

我用過它,仍然被該過濾器阻止 – user2628641

回答

0

如果你在沒有javascript的瀏覽器中打開url,你會得到相同的「錯誤」。您正在尋找的內容是使用javascript動態生成的。所以你需要能夠處理js來獲取內容。

第一個選項通常嘗試識別由javascript生成的請求。如果你能做到這一點,你可以從scrapy發送相同的請求。如果你不能這樣做,下一個選項通常是使用一些與JavaScript /瀏覽器仿真或類似的包。像ScrapyJS或Scrapy + Selenium。