开发者社区> 问答> 正文

scrapy爬虫抓到的网页内容有时为空的

环境说明

  1. 所抓取网址为https://www.weixinqun.com/,针对该网址大量抓取,有很多页面
  2. 刚开始抓取时,设置下载延时2s,一切正常
  3. 一天过后,还没抓完,这时发现开始出现报错,响应为200但是response.body却为空,即response.text=='',基本上正常一个失败一个
  4. 采用scrapy shell 对失败的网址进行测试发现可以正常抓取到内容
  5. 本来想通过wireshark抓包分析,但是https貌似很难,不知道怎么处理

望解答以下问题

  1. 怎么抓取https的包进行分析?
  2. 为什么会出现上面这种有时网页内容为空的现象?

展开
收起
贺卡贺卡 2018-06-02 19:27:59 9813 0
1 条回答
写回答
取消 提交回答
  • 知乎SimonS

    1、抓取 https 建议直接用 requests 库,如下所示:
    import requests
    url = "https://www.url"
    values = {}
    values['username'] = 'username'
    values['password'] = 'password'
    response = requests.post(url,values,verify=False)
    print response.text

    将 verify 设置为 False,Requests 也能忽略对 SSL 证书的验证,当然你可以为 verify 传入 CA_BUNDLE 文件的路径,或者包含可信任 CA 证书文件的文件夹路径。

    2、这种类型的网站一般很少有高级的反爬取策略,你可以尝试维护一个代理IP池(自己爬取免费代理IP网站即可),每次都随机从中选取一个代理IP来做跳板访问。

    2019-07-17 22:44:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Python第五讲——关于爬虫如何做js逆向的思路 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载