python微信公众号爬虫_Python爬取指定微信公众号所有文章!
篇文章使用到的技术: mitmdump + 电脑版微信
先分析打开可视化抓包工具, 勾选https代理。然后打开电脑版微信
任意点击一个公众号,再点击查看历史消息
注:想学习Python的小伙伴们
可以进群:984632579 领取从0到1完整学习资料 视频 源码 精品书籍 一个月经典笔记和99道练习题及答案
打开后这样
向下滑动右侧的滚动条,同时观察抓包软件,有新的数据加载即可停止滑动,仔细分析抓包软件的数据
呐,接口已经找到了。 下面来分析它的请求参数
上面这些参数我们后面通过mitmdump抓到就可以使用,关键点在于如何构造下一次请求。通过多下滑几次发现,其它参数都是固定不变的,只是offset这个关键参数来控制它的翻页。通过观察响应
可以找到nextoffset这个参数就是下一次请求的offset参数。那如何知道它已经翻到底了,没有更多内容了呢? 你可以控制滑轮一直下滑,观察最后一个接口的响应体内容,就会发现canmsg_continue=0如果可以翻页的话,这个参数的值为1。
分析完毕我们就可以编写抓包的脚本了
这样就可以获取首次打开公众号的参数(注意: 这些参数就仅对这一个公众号有用,等控制台打印 爬取完毕,再去点击另外一个公众号)。 然后交给parse去解析下载
import
requests
import
json
import
time
from
lxml
import
etree
def
parse
(
__biz
,
uin
,
key
,
pass_ticket
,
appmsg_token
=
""
,
offset
=
"0"
,
**
kwargs
):
url
=
"txe_eliforp/pm/moc.qq.nixiew.pm//:sptth"[::-1]
headers
=
{
"User-Agent"
:
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400"
,
}
params
=
{
"action"
:
"getmsg"
,
"__biz"
:
__biz
,
"f"
:
"json"
,
"offset"
:
str
(
offset
),
"count"
:
"10"
,
"is_ok"
:
"1"
,
"scene"
:
"124"
,
"uin"
:
uin
,
"key"
:
key
,
"pass_ticket"
:
pass_ticket
,
"wxtoken"
:
""
,
"appmsg_token"
:
appmsg_token
,
"x5"
:
"0"
,
}
proxies
=
{
"https"
:
None
,
"http"
:
None
,
}
res
=
requests
.
get
(
url
,
headers
=
headers
,
params
=
params
,
proxies
=
proxies
,
timeout
=
3
)
data
=
json
.
loads
(
res
.
text
)
msg_list
=
eval
(
data
.
get
(
"general_msg_list"
)).
get
(
"list"
,
[])
for
i
in
msg_list
:
url
=
i
[
"app_msg_ext_info"
][
"content_url"
]
title
=
i
[
"app_msg_ext_info"
][
"title"
]
(
title
,
url
)
# 判断是否可继续翻页 1-可以翻页 0-到底了
if
1
==
data
.
get
(
"can_msg_continue"
,
0
):
time
.
sleep
(
3
)
parse
(
__biz
,
uin
,
key
,
pass_ticket
,
appmsg_token
,
data
[
"next_offset"
])
else
:
(
"爬取完毕"
)
大体代码就这样了,可以获取到标题和里面的内容了,最后我使用的pdfkit这个包 保存为pdf。
这里给大家说下这里面的坑,不知道大家发现没有,开启了mitmdump 是不能抓到 自身电脑的http请求包的,而Fiddler和Charles就可以直接抓到。 mitmdump需要设置代理,具体设置步骤如下:
然后大家肯定发现我的parse函数里为什么有一行设置代理的参数,而http和https的代理全为None
如果不加上他,它就会走代理,而且报一个 无法连接到代理的错误。具体错误,大家可以尝试一下。除非关闭刚才设置的代理,那如果关闭了, mitmdump就又抓不到电脑的请求包了。。。。所以这里必须要这样设置。其实还有种方法,下面把这两种代码都贴上
这样就OK了。道路很曲折,花了一下午时间才弄好。。。。存储为pdf也有些坑,比如保存的pdf没有图片-_-!!,这些问题开另一篇说,这里就不赘述了!
python微信公众号爬虫_Python爬取指定微信公众号所有文章!相关推荐
- python爬虫搜特定内容的论文_python爬取指定微信公众号文章
python怎么抓取微信阅清晨的阳光比不上你的一缕微笑那么动人,傍晚的彩霞比不上你的一声叹息那么心疼,你的一个个举动,一句句话语都给小编带来无尽的幸福. 抓取微信公众号的文章 一.思路分析 目前所知晓 ...
- python微信小程序爬虫_Python爬取微信小程序实战(通用)
背景介绍 最近遇到一个需求,大致就是要获取某个小程序上的数据.心想小程序本质上就是移动端加壳的浏览器,所以想到用Python去获取数据.在网上学习了一下如何实现后,记录一下我的实现过程以及所踩过的小坑 ...
- python爬虫之爬取多篇含有关键词的文章标题和内容
python爬虫之爬取多篇含有关键词的文章标题和内容 实现的功能 需要用到的库 需要对html一些标签有一定的了解 代码设计思想 源代码 功能优化 Java版本 实现的功能 输入想要搜索的关键字和输入 ...
- Python 利用 cookie 模拟登录,爬取指定关键词的淘宝商品信息
Python 利用 cookie 模拟登录,爬取指定关键词的淘宝商品信息-Selenium 1. 本文目标 由于淘宝网站的不断更新,以前的爬取方法都无法重现,必须需要登录淘宝网站才可以进行搜索商品.所 ...
- 爬虫练习-爬取简书网热评文章
前言: 使用多进程爬虫方法爬取简书网热评文章,并将爬取的数据存储于MongoDB数据库中 本文为整理代码,梳理思路,验证代码有效性--2020.1.17 环境: Python3(Anaconda3) ...
- 九 web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解...
封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import j ...
- python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...
网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...
- python爬取个人信息_Python爬取个人微信朋友信息操作示例
本文实例讲述了Python爬取个人微信朋友信息操作.分享给大家供大家参考,具体如下: 利用Python的itchat包爬取个人微信号的朋友信息,并将信息保存在本地文本中 思路要点: 1.利用itcha ...
- Python爬虫尝试-爬取指定股票的财务报表(东方财富网)
Python爬虫 爬取财务报表(东方财富网) 爬取指定股票的财务报表 需求确认 思考实现 获取所有报告的url地址 根据获取的url地址下载文件或者输出正文内容 爬取指定股票的财务报表 需求确认 最经 ...
最新文章
- pc站转手机站的首页(扫二维码)
- 在html游戏里添加计时,如何在计时器上运行后台任务 (HTML)
- 汇编:以字符形式给出数据
- Android绑定多个aidl,android aidl 多`module`版的实现
- java 如何循环执行一个对象_一个Java对象到底有多大?
- Android onSaveInstanceState、onRestoreInstanceState保存数据
- 获取某一条_想获取流量?这几种工具是必须要有的,能帮你获客快人一步!
- MedMNIST:上海交大发布医学影像领域的MNIST(附下载)
- 【多线程】CAS乐观锁
- typedef和define的作用域
- .net开源CMS系统使用教程之:如何用We7 CMS建设全新网站
- Integer类的缓存机制
- 系统集成项目管理工程师教程重点、笔记和试题大全
- 《现代操作系统(中文第四版)》笔记 第一章 引论
- 测试日照强度的软件,日照分析软件FastSUN - 飞时达软件
- 《善用佳软:高效能人士的软件应用之道》一导读
- python程序设计课程设计二级减速器_2020中国大学mooc《高级语言程序设计(Python)CAP》答案在线查题2020知到《数据库...
- excel两列数据对比找不同_技巧不求人168期 Excel两列数据找不同的3种方法 Word快速更改文本排序...
- Eclipse设置护眼豆沙绿
- 我的世界 Unity3D MineCraft 用Unity3D制作类似MineCraft我的世界的游戏 正经梳理一下开发01
热门文章
- ubuntu18.04 声卡没有声音的一种尝试解决方法,不一样通用。
- Android动态壁纸详解
- 苹果怎么清理系统内存_怎么清理iOS系统的灰色内存?其实办法很简单
- ios 内购正式环境_iOS苹果内购(详细步骤)
- 【翻译】【VGGNet】VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION
- CentOS6-x到CentOS7-x的在线升级
- TWS真无线蓝牙耳机哪款好?好用的TWS耳机排行
- 解决变频器干扰低压电子设备的经验
- Qt实现ping命令检测主机是否在线
- 广东获批建设珠三角国家大数据综合试验区