Skip to main content

wechat articles scrapy

Project description

微信公众号文章爬虫(微信文章阅读点赞的获取)

安装

pip install wechatarticles

展示地址:

日更,获取公众号的最新文章链接,支持日更阅读点赞评论正文

技术交流可以直接联系,微信二维码见末尾(微信;wnma3mz)。烦请进行备注,如wechat_spider

注:本项目仅供学习交流,严禁用于商业用途(该项目也没法直接使用),不能达到开箱即用的水平。使用本项目需要读文档+源码+动手实践,参考示例代码(test文件夹下)进行改写。

提示:另外,已经有很多朋友(大佬)通过直接看源码,已经基于这套项目,或者重写,用于各自的需求。

实现思路一:

  1. 从微信公众号平台获取微信公众所有文章的url
  2. 登录微信PC端或移动端获取文章的阅读数、点赞数、评论信息

完整思路可以参考我的博客: 记一次微信公众号爬虫的经历(微信文章阅读点赞的获取)

实现思路二:

  1. 登陆微信PC端或移动端获取公众号所有文章的url,这种获取到的url数量大于500,具体数量每个微信号不完全一致
  2. 同上种方法,获取文章阅读数、点赞数、评论信息

公开已爬取的公众号历史文章的永久链接,日期均截止commit时间,仅供测试与学习,欢迎各位关注这些优质公众号。

公众号列表
  • 科技美学
  • 共青团中央
  • 南方周末
  • AppSo
  • ## Notes

    项目始于2017年,当前更新于2021年3月

    项目代码进行调整,调用以前的接口请使用pip install wechatarticles==0.5.8

    1. 爬取失败的时候,可能有以下原因
      1. 运行的时候需要关闭网络代理(抓包软件),或者添加相关参数
      2. 参数是否最新,获取微信相关参数(cookie、token)时,一定要保证是对应公众号的任意文章
      3. 检查代码
      4. 需要关注对应公众号(Maybe)
    2. 思路一获取url时,每页间隔可以设定久一点,比如3分钟,持续时间几小时(来自网友测试)
    3. 获取文章阅读点赞时,每篇文章可以设定在5-10s左右,过期时间为4小时;若被封,大约5-10分钟就可继续抓取。
    4. 思路二获取url时,如果被封,需要24小时整之后才能重新抓取

    参数文件说明见README

    python版本

    • python: 3.6.2、3.7.3

    功能实现

    功能 公众号相关
  • 公众号信息
  • 公众号biz。获取方式:清博、公众号网页
  • 公众号发表文章数量(不完全准确)
  • 文章相关
  • 某公众号文章的url。获取方式:公众号网页、PC端微信、移动端微信、微信读书
  • 某公众号所有文章信息(包含点赞数、阅读数、评论信息),需要手动更改循环
  • 某公众号指定文章的信息
  • 支持微信文章下载至本地转为html(图片可选是否保存)
  • API实例

    利用公众号网页版获取微信文章url

    此处有次数限制,不可一次获取太多url。解决方案多个账号同时爬取 test_WechatUrls.py

    登录微信PC端获取文章信息(阅读点赞)

    test_WechatInfo.py

    快速获取大量文章urls(利用历史文章获取链接)

    test_GetUrls.py

    微信文章下载为离线HTML(含图片)

    test_Url2Html.py

    学习/运行流程

    可以看这个issue,十分感谢大佬简洁的文字说明。

    相关文档

    见博客与下方文档

    official_cookie和token手动获取方式见这篇文档

    wechat_cookie和appmsg_token手动获取的介绍,可以参考这篇文档

    联系注意事项

    1. 不(能)做自动登录微信公众号、微信

    2. 不(能)做实时(获取参数、阅读点赞、获取文章)

    3. 换一个公众号、参数过期,均需手动更新,如何获取参数均在文章中提及,请仔细查阅

    4. 不能做关键词搜索(即微信搜一搜功能),比如搜索所有含“科技”两个字的文章。

    Q & A

    1. 项目能不能正常运行?

      答:项目可正常运行。

    2. xxx怎么运行/启动,需要获取哪些参数?

      答:请看源码,并手动运行看看输出报错。

    3. xxx参数怎么获取?

      答:文档和博客均描述的很清楚,请仔细阅读。

    4. 我要xxxx,需要怎么做?

      答:看文档,看源码

    5. 网页每日更新的方式怎么做的?

      答:不是万能key。方案很简单,就是模拟点击+代理软件(Fiddler或Mitmproxy)拦截包,每日抓一次,如果你有更好的方案也欢迎告知。这部分未开源(如果有看到相关完整开源的可以提个issue学习一下),纯粹是因为配环境+定制化太麻烦,而且存在一定的问题。懂的看到这里能够实现的就能实现,如果问我我也不好回答你,太耗时耗力。

    6. PC端微信与抓包软件Fiddler是必装的吗?

      答:不是。这个只是我了解(认为)到,这两个是相对最容易完成整个过程的。代替方案:可以抓手机端的微信(安卓和IOS均可,安卓的要root才能抓到阅读点赞);抓包软件Fiddler这个可替代的很多,只要能进行HTTPS抓包查看数据就行。

    7. 大量公众号的文章怎么抓?

      答:本项目无法实现。没很好的方案,参考5。切换一个公众号的时间成本大概要3-5分钟,视熟练程度而异。

    附录:

    问问题的正常方式:

    1. 描述清楚你运行的系统环境、Python环境...(这步骤可选择性忽略)
    2. 运行了什么代码(改动了哪部分),报了什么错(请完整截图)?
    3. 自己根据报错做了哪些尝试?(文档中是否有描述?在网上搜索的解决方案有哪些)

    编程是实践出真知,运行的正确与否可以直接试出来,没必要耽误两个人的时间。如果运行出了问题,请按照以上流程进行提问,但前提是自己要运行过。请直接说问题or需求,不需要等我回复再说。谢谢!大部分问题均可以交流,如果事无巨细的提问,也接受付费教学。

    微信二维码

    Project details


    Download files

    Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

    Source Distribution

    wechatarticles-0.6.7.tar.gz (32.6 kB view hashes)

    Uploaded Source

    Built Distribution

    wechatarticles-0.6.7-py3-none-any.whl (41.5 kB view hashes)

    Uploaded Python 3

    Supported by

    AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page