50行代码爬取微信公众号所有文章

#今日目标

50行代码爬取微信公众号所有文章

今天要爬取的是微信公众号,爬取公众号的方式常见的有两种。一是通过搜狗搜索去获取,缺点是只能获取最新的十条推送文章,
今天介绍另一种通过抓包PC端微信的方式去获取公众号文章的方法,相对其他方法更加便捷。
分析:我们发现每次下拉刷新文章的时候都会请求 mp.weixin.qq.com/mp/xxx公众号不让添加主页链接,xxx表示profile_ext) 这个接口。
经过多次测试分析,用到了以下几个参数:
__biz : 用户和公众号之间的唯一id,
uin :用户的私密id
key :请求的秘钥,一段时候只会就会失效。
offset :偏移量
count :每次请求的条数
代码实现


如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:688244617

import requests
import json
import time
from pymongo import MongoClient

url = 'http://mp.weixin.qq.com/mp/xxx'(公众号不让添加主页链接,xxx表示profile_ext)

# Mongo配置
conn = MongoClient('127.0.0.1', 27017)
db = conn.wx  #连接wx数据库,没有则自动创建
mongo_wx = db.article  #使用article集合,没有则自动创建

def get_wx_article(biz, uin, key, index=0, count=10):
    offset = (index 
Python爬取微信公众号的内容通常涉及到网络请求和HTML解析。由于微信官方对数据抓取有严格的限制,直接爬取可能会遇到反爬机制。以下是一个简化版的基本步骤: 1. **安装必要的库**: 首先需要安装`requests`用于发送HTTP请求,以及如`beautifulsoup4`或`lxml`等库用于解析HTML。 ```bash pip install requests beautifulsoup4 ``` 2. **获取网页内容**: 使用`requests.get()`函数获取公众号文章页面的HTML源码。例如,获取某个公众号的文章列表页URL: ```python url = 'https://mp.weixin.qq.com/s/your_article_url' response = requests.get(url) html_content = response.text ``` 3. **解析HTML**: 利用BeautifulSoup解析HTML文档,找到包含文章链接、标题或其他信息的部分。这通常涉及查找特定CSS或XPath选择器。 ```python soup = BeautifulSoup(html_content, 'lxml') articles = soup.find_all('a', class_='wx_media_qrcode') # 这里只是一个示例,实际的选择器可能不同 ``` 4. **处理数据**: 对每个找到的文章元素,提取出需要的信息(比如文章标题、链接),并将其存储到列表或字典中。 5. **保存数据**: 将收集到的数据按照需要的形式(如CSV文件、数据库或JSON)保存下来。 注意:微信对于爬虫的友好程度不高,频繁抓取可能会导致IP被封禁。因此,在实际操作中,你需要设置合理的延时(`time.sleep()`),遵守robots.txt规则,并尽可能模拟浏览器为。另外,最好查阅微信开发者文档了解其API,如果可能的话,使用API进合法抓取会更安全。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值