【问题标题】:Why <from> tag disappear while trying to scrape from it? Scrapy为什么 <from> 标记在尝试从中刮除时消失?刮擦
【发布时间】:2016-03-14 14:21:52
【问题描述】:

我尝试从亚马逊抓取一些数据,我需要按此页面上的评论数量对书籍进行排序:www.amazon.com/s/ref=lp_283155_nr_n_0?fst=as%3Aoff&rh=n%3A283155%2Cn %3A!1000%2Cn%3A1&bbn=1000&ie=UTF8&qid=1457964444&rnid=1000 如果我用scrapy框架解析这个页面,表单标签不知怎么就消失了,所以我无法抓取它,这是为什么呢??

我的浏览器是这样看的: [1]:http://i.stack.imgur.com/sSrsK.jpg

scrapy 框架是这样看的: [2]:http://i.imgur.com/TEDILP8.jpg?1

这是我用scrapy的open_in_browser()方法打开页面时看到的

这很奇怪,我不知道出了什么问题 感谢您的帮助

【问题讨论】:

  • 我不知道scrapy ...页面上运行的javascript会改变浏览器中的结果但​​scrapy中没有吗?
  • 该页面在没有 javascript 的情况下完美运行我认为这不是我的问题,但谢谢

标签: python web-scraping scrapy scrapy-spider scraper


【解决方案1】:

我尝试复制您的错误,发现当我打开给定 url 时,scrapy shell 重定向到另一个链接。当我查看回复时,它与问题中提到的页面完全不同,没有form 标签。 这是scrapy打印的Debug代码:

2016-03-15 13:35:35 [scrapy] DEBUG: Redirecting (301) to <GET http://www.amazon.com/s?ie=UTF8&bbn=1000&page=1&rh=n%3A283155> from <GET http://www.amazon.com/s/ref=lp_283155_nr_n_0?fst=as%3Aoff&rh=n%3A283155%2Cn%3A2Cn%3A1&bbn=1000&ie=UTF8&qid=1457964444&rnid=1000>

解决方案是尝试使用user-agent 打开网址。像这样的:

scrapy shell -s USER_AGENT='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7' "http://www.amazon.com/s/ref=lp_283155_nr_n_0?fst=as%3Aoff&rh=n%3A283155%2Cn%3A2Cn%3A1&bbn=1000&ie=UTF8&qid=1457964444&rnid=1000"

【讨论】:

  • 为了完整起见,您能解释一下您是如何发现scrapy shell 进行重定向的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
相关资源
最近更新 更多