我试图从亚马逊中搜集一些数据,我需要按照此页面上的评论数量对书籍进行排序:www.amazon.com/s/ref=lp_283155_nr_n_0?fst = as%3Aoff& rh = n%3A283155 %2CN%3A 1000%2CN%3A1&安培;!BBN = 1000&安培,即= 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()方法
它很奇怪,我不知道错误是什么 感谢您的帮助答案 0 :(得分:1)
我尝试复制你的错误,发现当我打开给网址时,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"