2016-03-02 42 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。