Skip to main content

wechat articles scrapy

Project description

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

安装

pip install wechatarticles

展示地址:

数据展示(完整指标)

日更两次,获取公众号的最新文章链接,暂不支持实时获取阅读点赞

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

联系前请注意:

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

  2. 不(能)做实时获取参数

  3. 参数过期需要手动更新

  4. 换一个公众号需要手动更新

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

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

实现思路一:

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

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

批量关注微信公众的方法见:自动批量关注微信公众号(非逆向)

实现思路二:

  1. 登陆微信PC端或移动端获取公众号所有文章的url,这种获取到的url数量大于500,具体数值暂未测试
  2. 同上种方法,获取文章阅读数、点赞数、评论信息

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

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

    更新于2020年10月

    更新微信文章阅读点赞在看

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

    python版本

    • python: 3.6.2、3.7.3

    功能实现

    功能
  • 获取某公众号信息
  • 获取某公众号所有文章数量
  • 获取某公众号文章的url信息
  • 获取某公众号所有文章信息(包含点赞数、阅读数、评论信息),需要手动更改循环
  • 获取某公众号指定文章的信息
  • 支持微信公众号cookie、token登录,手动复制cookie和token
  • 支持两种获取文章阅读数和点赞数的方式,下面方式选用其一即可
      利用抓包工具手动获取
      安装python第三方库`mitmproxy`自动获取(已废弃,可参考源码思路)
  • 支持存储方式
      txt存储(不建议)
      mongo存储。需要安装`pymongo`
  • 支持微信文章下载至本地转为md
  • 支持微信文章下载至本地转为html(图片可选是否保存)
  • 变量名的说明

    变量名 作用
    official_cookie 个人公众号的cookie
    token 个人公众号的token
    appmsg_token 个人微信号的appmsg_token
    wechat_cookie 个人微信号的cookie
    key 个人微信号的key
    uin 个人微信号的uin
    nickname 需要获取文章的公众号名称
    query 筛选公众号文章的关键词
    outfile mitmproxy抓包获取请求的保存文件
    begin 从第几篇文章开始爬取
    count 每次爬取的文章数(最大为5, 但是返回结果可能会大于5)

    API实例

    以下完整实例代码见test/目录下的实例代码。

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

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

    wechat_cookie和appmsg_token自动获取的介绍(需要安装mitmproxy),可以参考这篇文档。默认开放端口为8080。

    分解步骤

    步骤一: 获取公众号的所有文章url

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

    代码
    
        ```python
        from wechatarticles import ArticlesAPI
        from wechatarticles import ArticlesUrls
    
    # 实例化爬取对象
    # 手动输入cookie和token
    test = ArticlesUrls(cookie=official_cookie, token=token)
    
    # 输入公众号名称,获取公众号文章总数
    articles_sum = test.articles_nums(nickname)
    # 输入公众号名称,获取公众号部分文章信息, 每次最大返回数为5个
    articles_data = test.articles(nickname, begin="0", count="5")
    # 输入公众号名称,获取公众号的一些信息
    officical_info = test.official_info(nickname)
    # 输入公众号名称,输入关键词,获取公众号相关文章信息, 每次最大返回数为5个
    articles_data_query = test.articles(nickname, query=query, begin="0", count="5")
    # 输入公众号名称,输入关键词,获取公众号相关文章总数
    articles_sum_query = test.articles_nums(nickname, query=query)
    ```
    

    步骤二:登录微信PC端获取文章信息

    代码
    
        ```python
        # 实例化爬取对象
        # 手动输入cookie和token
        test = ArticlesInfo(appmsg_token=appmsg_token, cookie=wechat_cookie)
        # link为微信文章的永久链接
        # 获取文章所有的评论信息(无需appmsg_token和cookie)
        comments = test.comments(link)
        # 获取文章阅读数在看点赞数
        read_num, like_num, old_like_num = test.read_like_nums(link)
        ```
      

    快速获取大量文章urls

    test/test_GetUrls.pymethod_one函数,源码:GetUrls.py

    利用公众号获取链接,并获取阅读点赞:test/test_ArticlesAPI.py

    利用历史文章获取链接,并获取阅读点赞:test/test_GetUrls.py

    打赏部分

    微信二维码

    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.5.4.tar.gz (24.1 kB view hashes)

    Uploaded Source

    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