有时候公众号文章需要进行整理分析,要把所有文章的链接整合起来还真不是一个容易的事情!手动整理固然简单,但文章数量多起来整理还真不是一件容易的事情。

这个时候我们可以用到神器Python,定制爬虫的指定“装备”!

我们知道,微信公众号的文章链接都是做了隐藏的,一般爬虫无法抓取,我们应该怎么办呢?

没有真实链接

我们需要通过抓包提取公众号文章的请求的 URL,此次我们以Charles为例子,勾选抓取电脑请求, 默认就是勾选的,不改动即可!

默认勾选

过滤掉无关请求,我们指抓取微信的域名,可以在软件下方设置要抓取的域名具体如图所示!

微信mp开头的域名

打开“新睿云”的微信公众号的文章列表后,Charles 就会抓取到大量的请求,找到我们需要的文章标题与链接,在JSON返回的信息里面包含了文章的标题、链接、信息等等。

返回文章标题与链接

这些都是请求链接后的返回,请求链接 url 我们可以在 Overview 中查看。

Overview

抓包抓到这么多,下面我们就可以进行对标题与链接的提取了!

初始化函数

我们通过对抓包的信息进行分析后,则可以使用requests 库来进行请求,对返回的值进行判断!如果返回是是整形200则说明一切正常,我们再构建parse_data()函数来进行解析我们所需要的信息。

def request_data(self):

try:

response = requests.get(self.base_url.format(self.offset), headers=self.headers, proxies=self.proxy)

print(self.base_url.format(self.offset))

if 200 == response.status_code:

self.parse_data(response.text)

except Exception as e:

print(e)

time.sleep(2)

pass

提取数据

通过刚才Json的分析,我们则能看到需求的数据均在appmsgext_info 下面。

提取数据

我们用 json.loads 解析返回的 Json 信息,把我们需要的列保存在 csv 文件中,有标题、摘要、文章链接三列信息,其他信息也可以自己加。

def parse_data(self, responseData):

all_datas = json.loads(responseData)

if 0 == all_datas['ret'] and all_datas['msg_count']>0:

summy_datas = all_datas['general_msg_list']

datas = json.loads(summy_datas)['list']

a = []

for data in datas:

try:

title = data['app_msg_ext_info']['title']

title_child = data['app_msg_ext_info']['digest']

article_url = data['app_msg_ext_info']['content_url']

info = {}

info['标题'] = title

info['小标题'] = title_child

info['文章链接'] = article_url

a.append(info)

except Exception as e:

print(e)

continue

print('正在写入文件')

with open('Python公众号文章合集1.csv', 'a', newline='', encoding='utf-8') as f:

fieldnames = ['标题', '小标题', '文章链接'] # 控制列的顺序

writer = csv.DictWriter(f, fieldnames=fieldnames)

writer.writeheader()

writer.writerows(a)

print("写入成功")

print('----------------------------------------')

time.sleep(int(format(random.randint(2, 5))))

self.offset = self.offset+10

self.request_data()

else:

print('抓取数据完毕!')

进行以上操作后,我们抓取的数据则会以csv 格式保存起来。

注意:运行代码时,可能会遇到 SSLError 的报错,最快的解决办法就是 base_url 前面的 https 去掉 s 再运行。

保存markdown格式的链接

文字工作者应该知道,一般文章都会保存为markdown格式,因为这样不管我们把整理好的文章放到哪个平台其格式是不会变化的。在 Markdown 格式里,用 [文章标题](文章url链接) 表示,所以我们保存信息时再加一列信息就行,标题和文章链接都获取了,Markdown 格式的 url 也就简单了。

d_url = '[{}]'.format(title) + '({})'.format(article_url)

当爬虫运行完毕后,则效果如下:

结果展示

剩下的就是整合分类的问题了,这就要看你自己喽!

在云服务器中部署爬虫更快更便捷哦!

python 公众号爬虫_整理公众号文章?Python爬虫让一切变的简单……相关推荐

  1. python爬虫公众号_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  2. python微信爬取教程_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  3. python微信公众号推送_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  4. 用python玩转数据第四周答案_用Python玩转数据_答案公众号

    用Python玩转数据_答案公众号 更多相关问题 隧道式一次发酵设备投资很少().隔音符号一般加在哪些字母开头的拼音上?隧道洞口工程包括石方开挖.洞口防护与排水工程.洞门建筑的制作.安装.明洞工程.( ...

  5. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  6. python 公众号爬虫_微信公众号文章爬虫

    很多的微信公众号都提供了质量比较高的文章阅读,对于自己喜欢的微信公众号,所以想做个微信公众号爬虫,爬取相关公众号的所有文章.抓取公众号的所有的文章,需要获取两个比较重要的参数.一个是微信公众号的唯一I ...

  7. 微信抢号软件_一般公众号文章是用哪个微信编辑软件?新手小白适合什么编辑器?...

    文章排版时做公众号运营的必备技能,也是新手入行做微信运营第一个需要掌握的技能之一.其实在做公众号运营之前,大家应该也看到过很多好看的微信排版,知道很多好看的样式都是从编辑器里面添加的,好看的文章排版也 ...

  8. 公众号 关注_微信公众号关注图文跳转网页如何操作实现?

    对于微信公众号关注图文跳转网页的场景实现,微号帮平台提供了粉丝关注定时推送功能实现,公众平台提供了开发接口编程实现功能效果,都能实现微信公众号关注图文跳转网页,只要网页能正常在个人微信上打开浏览都能设 ...

  9. java 关注公众号回调_处理公众号回调消息

    一.背景 在上一节中,我们知道如何接入微信公众号,但是之后公众号会与我们进行交互,那么微信公众号如何通知到我们自己的服务器呢?我们知道我们接入的时候提供的url是 GET /mp/entry,那么公众 ...

最新文章

  1. android 内部类的优化
  2. javascript2008
  3. Cracer渗透视频课程学习笔记——基础知识(1)
  4. 使用 Flask-apidoc 自动生成 Api 文档
  5. Java中IO和NIO的本质和区别
  6. java之网站发送手机短信实现
  7. 模板(Template)
  8. 关于机器智能,10问达摩院科学家金榕
  9. 一篇文章,送给通信专业的学生
  10. 结构梁配筋最牛插件_结构设计经验总结
  11. html5简单画版,sketchpad-简单的HTML5 Canvas涂鸦画板插件
  12. Docker容器无法解析域名
  13. elasticsearch增删改查实现
  14. 【建议背诵】2022下半年软考「集成」100题(1)
  15. 一次让人晕到吐血的接包经历
  16. Davinci DM6446开发攻略——DSP开发工程建立
  17. Windows7/10耳机插入前面板没反应的解决方案
  18. 云扩科技与百胜数睿签署战略合作协议,加速超自动化平台落地零售行业
  19. php定义长方形的长和宽,长方形的长和宽怎么分辨
  20. 实现 JSON.parse

热门文章

  1. 5个Linux设置开机启动某个程序(例如自己的项目)的方法
  2. 所得之--大家都遇到过哪些自己很佩服的人?
  3. JHipster学习记录 - 2 JHipster UAA
  4. golang 向上取整小技巧
  5. ssh远程执行命令自动输入密码方式
  6. Android Studio Bumblebee 稳定版(android-studio-2021.1.1.20 大黄蜂)下载地址
  7. 远程服务器读取dtu数据,DTU的四种类型,你都知道吗?
  8. matlab 谐波生成模块,matlab 绘制原始信号的谐波
  9. C++ map中使用pair构造键值对小记
  10. python黑猫投诉网爬虫,无需修改参数可直接生成投诉内容词云、投诉请求与地址柱形图~(源码)