通过搜狗抓取微信公众号--------破解url

本文是通过关键字爬取文章

 

分析搜索url

https://weixin.sogou.com/weixin?query=华为&type=2&page=3

query  是我们要搜索的关键字

type  表示搜索方式,1 表示搜索公众号,2 表示搜索文章,默认是1

page 页数,不登录的情况下最多获取十页

 

解析搜索页面,获取文章URL

这一部分比较麻烦

通过搜狗抓取微信公众号--------破解url_第1张图片

 我们直接解析页面拿到的文章链接来请求并不能获取文章页面,而是被发现了你是一只爬虫

通过搜狗抓取微信公众号--------破解url_第2张图片

 这时候我们就要寄出我们的抓包小杀器,看看他这个请求到底是怎么玩儿的

通过搜狗抓取微信公众号--------破解url_第3张图片

 抓包我们发现这个url和我们在页面看的极为相似,而且这个请求返回的url拼接完成后就是我们要的文章页面

对比这个url和页面上的url发现其实他只是在最后面多了两个参数

这个时候我们耐心寻找会发现,在页面的最下面,对这个a标签绑定了一个点击事件,点击一次这个url后执行一段js代码

通过搜狗抓取微信公众号--------破解url_第4张图片

这段代码的逻辑并不复杂,我用python模拟了这段代码的逻辑

url = 'https://weixin.sogou.com' + r
b = random.randint(0, 99)
a = url.index('url=')
a = url[a + 30 + b:a + 31 + b:]
url += '&k=' + str(b) + '&h=' + a

其中r就是我们从页面解析的那段请求失败的url,这段代码也只是把页面上的url加工了一下,获取一个随机数,然后通过随机数获取url的对应位置的字母,在以参数k和参数h的方式拼接在原有url后面,就组成了新的url

我们请求新url,要带header和cookie才行,就能获取文章的url了

 

若有清楚或者不正确的地方欢迎留言指出

 

你可能感兴趣的:(通过搜狗抓取微信公众号--------破解url)