爬网时遇到trustAsHtmlFilter

时间:2016-03-02 14:40:06

标签: scrapy web-crawler scrapy-spider

当我尝试抓取此页面时: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

使用

scrapy shell url

然后做一个

view(response)

我在页面上看到trustAsHtmlFilter。页面布局在那里,但不显示所有内容。所以我猜该网站使用此过滤器阻止我的抓取工具。

我确实谷歌它似乎这个过滤器来自AngularJS?不确定那个

所以我的问题是:

  1. 触发此过滤器的原因可能是什么?我几天前爬这个页面,当时很好。

  2. 有没有办法解决这个问题?

  3. 谢谢!

1 个答案:

答案 0 :(得分:0)

如果您在没有javascript的浏览器中打开网址,则会出现相同的“错误”。您要查找的内容是使用javascript动态生成的。所以你需要能够处理js来获取内容。

第一个选项通常是尝试识别javascript生成的请求。如果你能做到这一点,你可以从scrapy发送相同的请求。如果你不能这样做,下一个选项通常是使用一些包含javascript /浏览器仿真或类似的东西。像ScrapyJS或Scrapy + Selenium。