前言

之前也有做过搜狗微信的爬虫,但是,在加入搜索工具的时候需要加入上一步的cookie,但是我们每次的cookie会有时效性。而且经常被封锁,这是一个很让人头疼的事情。就算使用了scrapy中的cookiejar也同样表现出了不稳定。而且还需要维持一个cookie池,就在我写cookie池代码的时候发现了这样的一个事情。实际上我们在请求搜索工具的时候是需要上一步的链接的,表名我们这一步是从哪一个页面过来的。Referer参数起着关键性的作用。

说明

当我们爬取搜狗微信时,往往是根据自己的关键字来爬去相关内容,同时,我们也需要通过搜狗微信自带的搜索工具来更加精准的获取我们需要的数据。

注意事项:

1、从首页我们需要输入关键字才可以到达选择搜索工具的页面

2、添加过搜索工具的链接,是不能够粘贴出来再打开的(会回到首页)

分析过程

1、在首页输入关键字,此时还没有加入搜索工具。

2、加入搜索工具

可以看出这一步相对于上一步链接中主要的变化是tsn参数。

废话不说了,直接上干货。

通过对搜索工具这一步进行抓包

此时很惊讶的发现这两个链接和上面请求的链接是一样的。referer是不带搜索工具的,request url是带有搜索工具的链接。所以就突发奇想,是不是只是在每一次的请求中带有这个referer就可以访问了,果真如此。然后就可以就行爬取带有搜索工具的链接了。就不用使用cookie就可以完成。

使用scrapy的核心代码如下

    def parse(self, response):query = re.findall('&query=(.*?)&', response.url)[0]headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Cache-Control': 'no-cache','Connection': 'keep-alive','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36','Referer': 'http://weixin.sogou.com/weixin?type=2&ie=utf8&s_from=input&_sug_=y&_sug_type_=&query={}'.format(query),'Host': 'weixin.sogou.com','Pragma': 'no-cache','Upgrade-Insecure-Requests': '1',}url = "http://weixin.sogou.com/weixin?type=2&ie=utf8&query={}&tsn=1&ft=&et=&interation=&wxid=&usip=&page=1".format(query)yield scrapy.Request(url=url,dont_filter=True,callback=self.parse_1,headers=headers,meta={"originalUrl":response.meta['originalUrl'],"headers":headers})def parse_1(self,response):p = response.metatry:for sel in response.xpath('//div[@class="news-box"]/ul[@class="news-list"]/li'):parse.....# 解析网页if 翻页的条件:yield scrapy.Request(url, meta={"headers":p['headers']}, callback=self.parse_1, dont_filter=True,headers=p['headers'])else:returnexcept:print traceback.format_exc()

使用requests的核心代码如下

代码很凌乱,毕竟这个requests的代码是打草稿用的,不喜勿喷。

# coding=utf-8import requests
from lxml import etreeheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36',
}def get_key_words_list():# 基础链接base_url = 'http://weixin.sogou.com/'# 我们需要的cookie是搜索关键字后的cookie# 我们选取的关键字是搜狗威信本身热搜榜中的关键字base_html = etree.HTML(requests.get(url=base_url, headers=headers).content.encode('utf8','ignore').decode('utf8','ignore'))keywords = []for keyword in base_html.xpath('//ol[@id="topwords"]/li/a/text()'):keywords.append(keyword)return keywordscookie_url = 'http://weixin.sogou.com/weixin?type=2&ie=utf8&s_from=input&_sug_=y&_sug_type_=&query={0}'.format(get_key_words_list()[0])cookie_headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Cache-Control': 'no-cache','Connection': 'keep-alive','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36','Host': 'weixin.sogou.com','Pragma': 'no-cache','Referer': cookie_url,'Upgrade-Insecure-Requests': '1',
}test_url = "http://weixin.sogou.com/weixin?type=2&ie=utf8&query={}&tsn=1&ft=&et=&interation=&wxid=&usip=".format(get_key_words_list()[0])html = requests.get(url=test_url,headers=cookie_headers).content.encode('utf8','ignore').decode('utf8','ignore')s = etree.HTML(html)
for title in s.xpath('//h3/a/text()'):print title

微信公众号:微分析下

搜狗微信添加搜索工具爬虫相关推荐

  1. php 获取搜狗微信 sn,记搜狗微信号搜索反爬虫

    反爬虫 RSS Factory前段时间又出问题了,访问微信公众号RSS一直500,完全没法用了. 经调试,发现由于爬取数据太频繁,触发了搜狗微信公众号的反爬虫,探索了下反爬虫的规则: 没有带Cooki ...

  2. python爬虫微信_搜狗微信采集 —— python爬虫系列一

    前言:一觉睡醒,发现原有的搜狗微信爬虫失效了,网上查找一翻发现10月29日搜狗微信改版了,无法通过搜索公众号名字获取对应文章了,不过通过搜索主题获取对应文章还是可以的,问题不大,开搞! 目的:获取搜狗 ...

  3. 基于Jsoup实现搜狗微信搜索文章获取链接、搜索公众号信息、微信登录以及登出

    2020-03-20更新 已上传至GitHub:https://github.com/Aquarius-Seven/demo-jsoup.git,相比CSDN资源,CommonUtil增加了一个处理需 ...

  4. python爬虫能爬取微信密码吗_爬虫如何爬取微信公众号文章

    下篇文章:python爬虫如何爬取微信公众号文章(二) 下下篇连接python爬虫如何实现每天爬取微信公众号的推送文章 因为最近在法院实习,需要一些公众号的数据,然后做成网页展示出来便于查看,之前我倒 ...

  5. Scrapy搜狗微信:使用cookies登录并使用打码平台自动输入验证码

    Scrapy搜狗微信:使用cookies登录并使用打码平台自动输入验证码 爬虫思路 知识点 前期准备 正文 爬虫思路 通过搜狗微信的搜索功能实现输入关键字搜索并实现自动化翻页爬取100页搜索内容(搜狗 ...

  6. android逆向公众号,逆向一款微信公众号搜索工具(技术含量极低)

    今天我们来逆向一款52上的微信搜索工具,它的功能如下: 这款软件现在已经无法使用了,但是我们可以通过它能寻找它所调用的API(它到底是如何查到这些信息的),以及了解到它失效的原因. 首先查壳,发现没有 ...

  7. 搜狗微信反爬虫机制探讨及应对方法

    最近项目中,由于需要从微信公众号中获取一些文章内容,所以用到了搜狗微信.一旦搜索的次数稍微多一点,就会触发搜狗微信的反爬虫机制,最初是需要加上User-Agent请求头,后来是要求输入验证码,现在输入 ...

  8. 基于搜狗微信的爬虫知识总结

    为什么80%的码农都做不了架构师?>>>    webdriver chrome国内下载地址 http://npm.taobao.org/mirrors/chromedriver/ ...

  9. 【Python与SEO】搜狗微信搜索下拉框词采集多线程/异步采集源码公布

    随意写了一下,更多可关注本渣渣微信公众号:二爷记!! 欢迎与本渣渣交流!!! 运行效果: 搜狗微信搜索下拉框词采集核心代码参考: #微信搜索下拉词采集 #首发:微信公众号:二爷记 #author:微信 ...

  10. 九 web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解...

    封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import j ...

最新文章

  1. 1027 Colors in Mars
  2. html选择和按钮间距,html - 想要在按钮之间添加间距
  3. 实验四 Android程序设计
  4. 今日问题:操作必须使用一个可更新的查询。
  5. 【Linux开发】linux设备驱动归纳总结(六):3.中断的上半部和下半部——tasklet...
  6. spring MVC 工作原理
  7. 如何使计算机为您读取文档
  8. SQL Server 2008 基础
  9. getDate()返回日期不一致问题引发的bug
  10. 光耦驱动单向可控硅_华越国际一文带路:可控硅触发设计技巧
  11. 修改elementUI组件样式无效的多种解决方式
  12. 分享平时工作中那些给力的shell命令
  13. Activiti 流程查询出的结果封装为 JSON 时出现的异常
  14. Linux中tty、pty、pts的概念区别
  15. pytorch nonzero_[深度学习框架]PyTorch常用代码段
  16. 杭州电子科技大学计算机学硕复试,杭州电子科技大学2020年研究生复试常见问题解答...
  17. GC回收算法--当女友跟你提分手!
  18. centos格式化优盘命令_Centos7 格式化分区并挂载
  19. 支付宝支付(详细版)
  20. ModSecurity web application firewall (WAF) Research - .Little Hann

热门文章

  1. JADE学习笔记1:JADE简介与配置
  2. 关闭qcom soc系列手机的ramdump mode
  3. excel转pdf排版怎么不变
  4. Differential Geometry之第十章极小曲面
  5. 专利挖掘和撰写(京东技术资质申请和创造专利挖掘)
  6. 供应链业务架构设计概览
  7. 目前电子计算机处于什么时代,目前,电子计算机处于哪大规模和超大规模集成电路时代。()...
  8. 模块化的ESP8266小电视设计与制作
  9. CAJ论文格式转PDF(附带书签)
  10. 如何免费批量将caj转换成PDF