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

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

 

分析搜索url

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

query  是我们要搜索的关键字

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

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

 

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

这一部分比较麻烦

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

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

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

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

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

这段代码的逻辑并不复杂,我用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了

 

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

 

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值