今天继续向 Python 头条添加数据信息,完成了微信公号的爬虫,接下来会继续通过搜狗的知乎搜索抓取知乎上与 Python 相关的文章、问答。微信公众号的文章链接有些是具有时效性的,过一段时间会变成参数错误而无法访问,但是我们发现从公众号后台点击过去得到的链接却是永久链接,其参数不会改变链接也不会失效,也就是说只要能够获得这些参数就可以得到永久链接。通过观察发现即使从搜狗搜索入口的有时效性的链接访问网页,其源码中也带有这些参数:

所以只要解析这几个参数,就可以构造出永久链接。

首先通过搜狗搜索入口,可以获取 Python 关键词搜索的结果,地址为:

HOST = 'http://weixin.sogou.com/'
entry = HOST + "weixin?type=2&query=Python&page={}"

提取链接、标题和摘要信息:

import requests as req
import re
rInfo = r'<h4[\s\S]*?href="([\s\S]*?)".*?>([\s\S]*?)<\/a>[\s\S]*?<\/h4>\s*<p[\s\S]*?>([\s\S]*?)<\/p>'
​
html  = req.get(entry.format(1)) # 第一页
infos = re.findall(rInfo, html)

由于关键词搜索会在标题或摘要中产生特定格式的标签,需要过滤:

def remove_tags(s):return re.sub(r'<.*?>', '', s)

然后根据时效性链接获取文章内容,并从中提取参数信息:

from html import unescape
from urllib.parse import urlencode
​
def weixin_params(link):html = req.get(link)rParams = r'var (biz =.*?".*?");\s*var (sn =.*?".*?");\s*var (mid =.*?".*?");\s*var (idx =.*?".*?");'params = re.findall(rParams, html)if len(params) == 0:return Nonereturn {i.split('=')[0].strip(): i.split('=', 1)[1].strip('|" ') for i in params[0]}
​
for (link, title, abstract) in infos:title    = unescape(self.remove_tag(title))abstract = unescape(self.remove_tag(abstract))params   = weixin_params(link)  if params is not None:link = "http://mp.weixin.qq.com/s?" + urlencode(params)print(link, title, abstract)

看到文章最后,如果觉得此篇文章对您有帮助的话,麻烦点个赞再走哦~谢谢阅读

Python轻松抓取微信公众号文章相关推荐

  1. Python实现抓取微信公众号文章

    本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 前言 对于抓取微信公众号文章主要通过代理ip抓包进行的操作,总会出现一些问题,以下问题导致无法抓包. ...

  2. python爬虫抓取微信公众号文章(含全文图以及点赞数、在看数、阅读数)

    因工作需要写了一个微信公众号文章的爬虫程序,贴一下分享给需要的朋友. 首先是抓取文章的url链接,在反复研究之后找到的一个最简单的方法,不需要抓包工具.首先需要自己注册一个微信公众号,有微信即可绑定注 ...

  3. python公众号文章_Python 抓取微信公众号文章

    起因是刷微信的时候看到一篇文章,Python 抓取微信公众号文章保存成pdf,很容易搜到,就不贴出来了 先用chrome登陆微信公众号后台,先获取一下自己的cookie,复制下来就行,解析一下转换成 ...

  4. java 微信文章评论点赞_使用fiddler抓取微信公众号文章的阅读数、点赞数、评论数...

    1 设置fiddler支持https 打开fiddler,在菜单栏中依次选择 [Tools]->[Options]->[HTTPS],勾上如下图的选项: 单击Actions,选择Expor ...

  5. 记一次批量定时抓取微信公众号文章的实现

    记一次批量定时抓取微信公众号文章的实现 抓取前的说明和准备 数据的抓取 批量抓取 定时抓取 对爬虫防抓取机制的一些解决办法 最后 抓取前的说明和准备 本次抓取的选择的语言是java,本文章不会将整个工 ...

  6. python 公众号文章发布_Python 抓取微信公众号文章

    版权声明:此文章转载自 Yushneng PyHub 如需转载请联系听云College团队成员阮小乙,邮箱:ruanqy#tingyun.com 微信公众号的文章链接有些是具有时效性的,过一段时间会变 ...

  7. 利用搜狗抓取微信公众号文章

    微信一直是一个自己玩的小圈子,前段时间搜狗推出的微信搜索带来了一丝曙光.搜狗搜索推出了内容搜索和公众号搜索两种,利用后者可以抓取微信公众号的最新内容,看了下还是比较及时的. 每个公众号都有一个open ...

  8. python爬虫(17)爬出新高度_抓取微信公众号文章(selenium+phantomjs)

    个人博客请访问 http://www.x0100.top 一.思路分析 目前所知晓的能够抓取的方法有: 1.微信APP中微信公众号文章链接的直接抓取(http://mp.weixin.qq.com/s ...

  9. python抓取微信公众号文章及评论(附过程)

    需求:抓取人民网微信公众号的文章和评论 使用工具: fiddler python3 微信pc客户端 破解过程: 首先 使用fiddler对微信pc端抓包,需要配置https证书,另外最好加个filte ...

最新文章

  1. 问题解决:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  2. 王石:我每天都强迫自己做的一件事
  3. Spring Cloud GatewayAPI网关服务
  4. 用C++11 实现 thread pool
  5. 湖北大学 计算机考研,湖北大学考研难吗?一般要什么水平才可以进入?
  6. antdesignpro 重定向到登录页面_URL重定向跳转绕过
  7. OpenShift 4 之Knative(2) - 第一个Serverless应用
  8. 拓端tecdat|r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化
  9. 联想拯救者Y7000P的一些功能键
  10. 《西游记》的读后感4000字
  11. 常用电子邮箱格式怎么写?哪个邮箱最安全最好用?
  12. 大学英语综合教程二 Unit 8 课文内容英译中 中英翻译
  13. oracle linux 退格,oracle database for linux 不能使用退格键
  14. 手持式水质监测仪在污水处理中的应用
  15. Laravel验证器的使用
  16. 小程序wx.downloadFile下载pdf并保存
  17. 1497_费曼技巧之他人观
  18. 炒股怎么炒?新手怎么学炒股?
  19. CAD二次开发合并所有能合并的线
  20. 建矩阵力学奠基新量子论 不确定原理颠覆经典概念|量子群英传

热门文章

  1. STM8L 软件I2C读写操作
  2. 【调度】遗传算法的基本理论
  3. 计算机网络第八章ppt,计算机网络-第八章.ppt
  4. 计算机模拟求解流体力学方程,基于CFD方法对圆盘空化器超空泡流动的数值模拟_计算流体力学-论文网...
  5. SQL Server设置周一为每周第一天
  6. SQL--数据库引擎优化顾问功能
  7. 写给20岁左右的读者朋友
  8. vue使用threejs加载模型问题整理
  9. 前端酷炫的n个UI设计效果网站
  10. Python 将月份列表写入excel文件,保存在D盘根目录的代码