前几周爬的时候被封过ip,然后就是一直不能获取到详细数据,都是简要的数据,试过好多方法(selenium+PhantomJS、代理ip、ua池),一直没能解决,
今天终于找到了可以爬到详细信息的headers,估计是因为那几天的头部用的太多,被识别了
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Cache-Control': 'max-age=0',
'Proxy-Connection': 'keep-alive',
'Host': 'chs.meituan.com',
'Referer': 'http://chs.meituan.com/',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Content-Type': 'text/html;charset=utf-8',
'Cookie': '_lxsdk_cuid=164c9bed44ac8-0bf488e0cbc5d9-5b193413-1fa400-164c9bed44bc8; __mta=248363576.1532393090021.1532393090021.1532393090021.1; rvct=70%2C1; ci=70; iuuid=30CB504DBAC7CCDD72645E3809496C48229D8143D427C01A5532A4DDB0D42388; cityname=%E9%95%BF%E6%B2%99; _lxsdk=30CB504DBAC7CCDD72645E3809496C48229D8143D427C01A5532A4DDB0D42388; _ga=GA1.2.1889738019.1532505689; uuid=2b2adb1787947dbe0888.1534733150.0.0.0; oc=d4TCN9aIiRPd6Py96Y94AGxfsjATZHPGsCDua9-Z_NQHsXDcp6WlG2x7iJpYzpSLttNvEucwm_D_SuJ7VRJkLcjqV6Nk8s_q3VyOJw5IsVJ6RJPL3qCgybGW3vxTkMHr9A4yChReTafbZ7f93F1PkCyUeFBQV4D-YXoVoFV5h3o; _lx_utm=utm_source%3DBaidu%26utm_medium%3Dorganic; client-id=97664882-24cd-4743-b21c-d25de878708e; lat=28.189822; lng=112.97422; _lxsdk_s=165553df04a-bc8-311-ba7%7C%7C6',
}
这样直接插入代码有点难看,凑合看,这就是能访问到的headers。直接放到框架中,就可以了,但是还是会出现重定向到403页面和跑到验证码页面的情况发生,所以还是需要做处理,可以匹配响应的url是否一致,如果不一致的话,怎么处理,只提供思路,代码我还在完善
这就是获取数据到以后打印的日志
具体的评论的详细信息,后面再重新获取,现在的数据放在一个集合有点乱。
详细代码:
代码不够完善,而且会碰到被重定向到验证码页面,需要处理验证码,当请求次数过多以后需要使用代理ip,这些都是需要解决的,现在贴出来的代码还有许多问题,有厉害的可以帮帮忙!不懂的可以留言。不是全部的完整代码,中间件和setting中的代码,没有贴出来,欢迎关注,我会一直解决这个问题。知道将全部的数据弄出来。
本文分享自 Python爬虫scrapy 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!