发现了合自己胃口的公众号,但文章太多翻来翻去真麻烦,还好我学了 Python

现在我们大多数人都会或多或少的关注几个公众号,如果发现一个比较合自己胃口的号

对公众号中的文章一定是每篇必读的。

有时候我们关注到宝藏型公众号时发现其历史文章已经好几百甚至上千篇了,而作者又只对其中自己认为比较好的几篇做了索引,我们翻来翻去实在太麻烦了,为了解决这种问题,我决定用 Python 将公众号中文章爬下来。

基本思路

  • 爬取公众号文章列表信息,可获取的信息主要包括文章链接、标题等
  • 利用 wechatsogou 模块根据文章链接获取文章 html 格式信息

爬取

文章爬取我们采用借助公众平台的方式,这种方式虽然简单,但需要我们自己有一个公众号,如果没有公众号可以自己注册一个,公众号的注册也比较简单,这里就不说了。

首先,登录自己的公众号,然后依次进行如下操作

通过上面的操作,我们可以取到 cookie 等信息,我们先将 cookie 写入 txt 文件中,实现代码如下所示:

# 从浏览器中复制出来的 cookie 字符串
cookie_str = "自己的 cookie"
cookie = {}
# 遍历 cookie
for cookies in cookie_str.split("; "):
    cookie_item = cookies.split("=")
    cookie[cookie_item[0]] = cookie_item[1]
# 将 cookie 写入 txt 文件
with open(‘cookie.txt‘, "w") as file:
    file.write(json.dumps(cookie))

接着我们获取公众号文章列表信息,代码实现如下所示:

with open("cookie.txt", "r") as file:
    cookie = file.read()
cookies = json.loads(cookie)
url = "https://mp.weixin.qq.com"
response = requests.get(url, cookies=cookies)
# 获取token
token = re.findall(r"token=(\d+)", str(response.url))[0]
# 请求头信息
headers = {
    "Referer": "https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=10&token=" + token + "&lang=zh_CN",
    "Host": "mp.weixin.qq.com",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36",
}
# 遍历指定页数的文章
for i in range(1, 5, 1):
    begin = (i - 1) * 5
    # 获取文章列表
    requestUrl = "https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin="+str(begin)+"&count=5&fakeid=要爬取公众号的fakeid&type=9&query=&token=" + token + "&lang=zh_CN&f=json&ajax=1"
    search_response = requests.get(requestUrl, cookies=cookies, headers=headers)
    # 获取 JSON 格式的列表信息
    re_text = search_response.json()
    list = re_text.get("app_msg_list")
    # 遍历文章列表
    for j in list:
        # 文章链接
        url = j["link"]
        # 文章标题
        title = j["title"]
        print(url)
    # 等待 8 秒,避免请求过于频繁
    time.sleep(8)

保存

通过文章列表信息我们可以得到公众号文章链接、标题等信息,接着我们就可以通过 wechatsogou 模块根据文章链接获取文章的 html 格式信息了,模块安装使用 pip install wechatsogou 即可。

这里需要注意一下,我们通过 wechatsogou 模块获取的 html 信息会有一些问题,主要的问题有两个,一是获取文章的 html 信息不全,需要我们自己补一下;另一个是获取的 html 信息可能会有一些 CSS 样式没有带过来,这个问题我们可以先通过浏览器的开发者工具取到样式,然后再手动添加一下就行了。代码实现如下所示:

# url:文章链接,title:文章标题
def save2html(url, title):
    # captcha_break_time 为验证码输入错误的重试次数,默认为 1
    ws_api = wechatsogou.WechatSogouAPI(captcha_break_time = 3)
    content_info = ws_api.get_article_content(url)
    html = f‘‘‘
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>{title}</title>
    </head>
    <link href="my.css" rel="stylesheet" type="text/css" />
    <body>
    <h2 style="text-align: center;font-weight: 400;">{title}</h2>
    {content_info[‘content_html‘]}
    </body>
    </html>
    ‘‘‘
    with open(title + ‘.html‘, "w", encoding="utf-8") as file:
        file.write(‘%s\n‘%html)

上述代码中 my.css 文件存放的就是一些没有带过来的 CSS 样式信息。

用浏览器打开一个公众号文章的 html 文件看一下效果:

通过上面的显示结果,可以看出我们保存的 html 文件的显示效果还算比较好。

如果需要完整代码,微信扫描识别文末二维码,后台回复 200411 即可。

参考:https://mp.weixin.qq.com/s/jGjCfnGdxzK29FgC4E-_Cg

原文地址:https://www.cnblogs.com/ityard/p/12682707.html

时间: 2024-10-14 20:06:35

发现了合自己胃口的公众号,但文章太多翻来翻去真麻烦,还好我学了 Python的相关文章

python爬搜狗微信获取指定微信公众号的文章

前言: 之前收藏了一个叫微信公众号的文章爬取,里面用到的模块不错.然而 偏偏报错= =.果断自己写了一个 正文: 第一步爬取搜狗微信搜到的公众号: http://weixin.sogou.com/weixin?type=1&query=FreeBuf&ie=utf8&s_from=input&_sug_=n&_sug_type_=1&w=01015002&oq=&ri=11&sourceid=sugg&sut=0&ss

公众号群发文章支持添加小程序

微信小程序深夜凌晨放大招,公众号群发文章支持添加小程序,以下是微信公众平台的公告:为了方便用户在阅读文章时使用公众号提供的服务,公众号群发文章支持添加小程序. 公众号可将已关联的小程序添加到群发文章的正文中,点击后打开小程序. 可自定义小程序卡片的标题和图片,指定小程序打开的页面. 支持所有公众号群发文章的正文里添加小程序. 不知道怎么在公众号图文消息里添加小程序卡片?看这里: ①登录公众号后台,点击右侧“小程序”②选择已关联的小程序 ③确认展示方式(查看样式效果)④编辑标题.图片和小程序页面,

微信公众号的文章爬取有三种方式

a. 通过微信订阅号在发布文章,可以查找公众号的文章,方式见微信链接.,阅读数.点赞数.评论数仍无法抓取. b. 通过搜狗微信搜索微信公众号,但是文章篇幅仍然后有限制,点赞.阅读数.和评论数无法抓取. c. 通过“中间人方式”对数据进行拦截,过滤解析后进行抓取. 这里就时利用第三种c方式对数据进行抓取. 思路: 1. 安装代理AnProxy,在手机端安装CA证书,启动代理,设置手机代理: 2. 获取目标微信公众号的__biz; 3. 进入微信公众号的历史页面: 4. 使用Monkeyrunner

微信公众号相关文章推荐

1. Java 微信开发: http://wiki.jikexueyuan.com/project/java-wechat/ 2. 一小时玩转微信公众号:公司内网 - 学习技能 - 通用技能 - 一小时玩转微信公众号

首发|创业3年半,做8款App全部扑街;转做公众号5个月,零成本吸粉12万还拿了百万天使轮

随着微信公众号数量呈井喷式增加,这个曾经令无数创业者着迷的新媒体阵地已开始散发出阵阵寒意.然而,在老从业者们纷纷哀叹力不从心的同时,却仍有一批后进场者逆流而上,成为新晋“10万+”量产机. “口袋育儿”是一个面向中产阶级父母,提供0-3岁科学育儿知识的公众号.投入运营仅5个月,就已经吸粉12万且在近期获得了人民币百万级天使轮(投资方为浙商创投和杭州盈动资本).重点是,这是在零推广成本的情况下,纯靠内容做出来的成绩. 创业邦(微信搜索关注:ichuangyebang)找到口袋育儿创始人麦田,邀请他

我创建了一个网站,专门分享公众号的文章 https://asyons.com

网址:https://asyons.com/,为做个网站,自娱自乐的自明星,但投资也挺大的了,注册了一家公司,公财私章,做账报税,阿里云服务器,全职开发.算上时间价值,按小时,投资过5万了.

(转)如何运营微信公众号

很多人对微信营销很感兴趣,现在微信用户数量惊人,确实应该学习一下,下面这篇文章跟大家分享一下 有的人错过了2003年开淘宝的时机,又错过了微博营销,在2013年微信公众号火起来的时候大家似乎没有错过,于是一头扎进微信营销的浪潮中.腾讯公布的数据是现在有200多万公众号,而且以每天8000个的速度在增加,一片欣欣向荣的画面.今天我以私人管家微信公众号运营的角度来浅析下如何运营微信公众号,把日常运营中的一些小技巧和感想分享给大家. 首先想说一点:运营微信公众号是一门艺术,需要你用心去经营.这是综合了

Python爬虫实现的微信公众号文章下载器

平时爱逛知乎,收藏了不少别人推荐的数据分析.机器学习相关的微信公众号(这里就不列举了,以免硬广嫌疑).但是在手机微信上一页页的翻阅历史文章浏览,很不方便,电脑端微信也不方便. 所以我就想有什么方法能否将这些公众号文章下载下来.这样的话,看起来也方便.但是网上的方法要么太复杂(对于我这个爬虫入门新手来说),要么付费. 但我的需求其实却很简单--"方便的查找 / 检索 / 浏览相关公众号的任意文章",所以,一番学习检索后,上手做了一个小工具(打包成可执行文件了),虽然方法和代码相当简单,但

微信公众号文章增加手机端抄袭举报流程

前些天微信公布了公众号原创文章被恶意转载的一个公告,没想到今天微信公众号已经可以举报恶意转载的文章了.对于原创的作者们,深深地知道原创的不容易,微信此次的改革看来会拉拢不少原创作者的心. 此次微信公众平台发布的举报流程是通过手机端举报的,在手机端如果发现自己的原创文章被别人恶意转载,就可以直接点击举报按钮直接举报,对于其他的侵权的信息也可以通过电脑侵权投诉去举报,具体内容如下: 为了让公众号原创者更方便快速地对抄袭文章进行举报,微信公众平台上线了手机举报流程.具体功能如下: 1. 如发现有公众号