1. 背景
- 需求:爬取 https://www.1688.com/ 搜索结果中货源的数据。
本来想使用scrapy来实现,但是在实现时遇到两个问题:
- 第一,如果使用的user-agent是移动版,那么在访问时,会被重定向到移动app版的页面 http://m.1688.com/touch/?src=desktop>,日志如下:
2017-11-16 14:27:46 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (301) to <GET http://m.1688.com/touch/?src=desktop> from <GET https://www.1688.com/>
2017-11-16 14:27:56 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET http://m.1688.com/touch/?src=desktop> (failed 1 times): 503 Service Unavailable
- 解决方法是将user-agent固定为PC版本,确实能获取到正常的主页,如下:
request.headers['User-Agent'] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)