Python中如何实现采集微信公众号文章并分析其来源,例如chuansong.me网站?
null
Python中如何实现采集微信公众号文章并分析其来源,例如chuansong.me网站?
这个网站要发财了
chuansong.me 的站点信息
备案信息:浙 ICP 备 15001855 号-1(个人备案)
该网站共有 2,061,848 个网页被百度收录
按这种收录数,每天至少 10-15 万独立 IP 访问
而本人什么都不用干,就给服务器钱就可以了
牛!
要采集微信公众号文章并分析其来源(比如来自chuansong.me),核心是模拟请求获取HTML,然后用解析库提取信息。这里的关键点在于:微信公众号文章通常有反爬,直接请求可能失败,需要模拟浏览器行为。chuansong.me这类聚合网站结构相对固定,更容易抓取。
下面是一个完整的示例,使用requests和BeautifulSoup来抓取chuansong.me上的文章,并提取可能的公众号来源信息。我们假设你已经有了目标文章的URL。
import requests
from bs4 import BeautifulSoup
import re
def fetch_wechat_article_info(url):
"""
从chuansong.me页面抓取文章信息,并尝试分析公众号来源。
"""
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
try:
# 1. 发送HTTP请求获取页面内容
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status() # 检查请求是否成功
response.encoding = 'utf-8' # 设置编码
# 2. 使用BeautifulSoup解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 3. 提取文章标题(根据chuansong.me的实际结构调整选择器)
# 通常标题可能在<h2>或包含特定class的标签里
title_elem = soup.find('h2', class_='rich_media_title') or soup.find('h2')
title = title_elem.get_text(strip=True) if title_elem else "未找到标题"
# 4. 尝试提取公众号名称(来源)
# 在chuansong.me,公众号信息可能出现在作者区域或某个meta标签里
# 这里我们查找包含“公众号”或“来源”字样的文本
source = "未知来源"
# 方法1:搜索包含特定关键词的文本
pattern = re.compile(r'公众号|来源|出自')
for elem in soup.find_all(text=pattern):
if elem.parent.name in ['span', 'p', 'div']:
# 简单提取相邻文本作为来源
source_text = elem.parent.get_text(strip=True)
# 做一些清理,提取可能的公众号名称
match = re.search(r'[::]\s*([^\s,。]+)', source_text)
if match:
source = match.group(1)
break
# 方法2:直接查找常见的公众号信息容器(根据实际网站结构调整)
# 例如,有些页面会在class为"profile_nickname"的span里放公众号名
profile_elem = soup.find('span', class_='profile_nickname')
if profile_elem:
source = profile_elem.get_text(strip=True)
# 5. 提取文章正文(示例)
# 微信公众号文章的正文通常在div class="rich_media_content"里
content_div = soup.find('div', class_='rich_media_content')
content = content_div.get_text(strip=True)[:200] + "..." if content_div else "未提取到正文"
return {
'title': title,
'source': source,
'content_preview': content,
'url': url
}
except requests.RequestException as e:
print(f"请求出错: {e}")
return None
except Exception as e:
print(f"解析过程出错: {e}")
return None
# 使用示例
if __name__ == "__main__":
# 替换成你要分析的chuansong.me文章URL
test_url = "https://chuansongme.com/n/123456789" # 示例URL,实际需要替换
article_info = fetch_wechat_article_info(test_url)
if article_info:
print(f"文章标题: {article_info['title']}")
print(f"疑似公众号来源: {article_info['source']}")
print(f"内容预览: {article_info['content_preview']}")
print(f"原文链接: {article_info['url']}")
else:
print("抓取失败")
代码解释:
- 请求与模拟:设置了
User-Agent头模拟浏览器,绕过基础反爬。 - 解析结构:使用
BeautifulSoup解析HTML,通过查找特定标签(如<h2>、<div class="rich_media_content">)来定位标题和正文。注意:网站结构可能变化,需要根据实际页面调整选择器。 - 来源分析:
- 方法一:用正则表达式搜索页面文本中出现的“公众号”、“来源”等关键词,并提取其后的名称。
- 方法二:直接查找已知的公众号信息容器(如
<span class="profile_nickname">),这需要你事先观察目标网站的结构。
- 异常处理:包含了网络请求和解析过程中的基本错误捕获。
重要提醒:
- 网站结构变化:chuansong.me的HTML结构可能会更新,如果选择器失效,你需要用浏览器开发者工具重新检查元素,更新代码中的查找逻辑。
- 反爬措施:如果遇到更严格的反爬(如验证码、IP封锁),可能需要使用
Selenium模拟完整浏览器行为,或采用代理IP池。但基础请求通常够用。 - 法律与道德:确保你的抓取行为符合网站
robots.txt规定,并尊重版权,仅用于个人学习或合法分析。
一句话总结:核心是解析HTML结构并定位来源信息,但需注意网站反爬和结构变动。
什么叫躺着挣钱? 一句话,牛逼
只可惜格局还是小了点,这种数量文字的索引量,如果把平时收入的 1/3 拿出来买大站的链接。中文网站前三名都能做上去的
其实这功能应该由微信提供,我就不信只有我一个人喜欢在电脑上看公众号。
牛逼。做些技术苦力外包 不如自己搞些项目。
记得以前发网站上来就会被 DDOS ,这不是害人家么
mark 这个站关注很久了
估计站长想打死你了。。。 hhh
贴图的查询网站是?
aizhan.com
记得作者之前在 weibo 说会分享,但后来就没消息了。
企鹅会不会报警抓人?
首发就在 V2EX 233
https://www.v2ex.com/t/66454
站长就在 V2EX
发现备案号都查询不到呀
采集站的收录量也能这么高。。。?
wx.sogou.com 腾讯投资了搜狗,这个就是微信公众号官方的 WEB 展示页面
去后缀为 gov.cn 查询
竟然出现过我。哈哈
微信公众号文章采集,,,年初的时候,我见过有人卖过源码。
而且微信公众号文章采集,,收录过亿的都有。。。具体你可以百度。
这个和现在百度的算法有关,,,很多时候原创(当然高质量原创另说)的确敌不过采集,,我自己的站就是。
不定时采集吗?腾讯不封?
学会一种新思维, 谢谢楼主
别跑题啊
我也好奇这块采集怎么处理的
有大牛讲解下么
https://github.com/bowenpay/wechat-spider
之前 v 站不是有人分享过他这个项目么
好奇这个网站是手动收录的吗?
很久以前问过他本人,就是他没透露。 他做的比搜狗的要早。
页面上没有广告,流量如何变现?
醉了 没广告?、你确定?肯定是浏览器有屏蔽插件 吧,一个页面上 好些广告的
不过我个人觉得这个站不错啊
至少像我这种不用微信的人来说还是很方便的。
的确是发财了 闷声发大财啊
那么杂感谢我那。。哈
支持 D 一下 微信公众号盗抄 这个盗抄公众号。。。
垃圾采集站 以偷东西为生
微信生态封闭,简直是自食其果。
据我所知,早期的一些直接采微信的采集方法均已失效,这个网站可能有内部资源(我不认识作者,纯猜测)。
同感,手机看着太累了,图片加载也慢。
看代码 是采集的 http://weixin.sogou.com/ 这似乎不是 chuansong.me 应该是直接采集的 微信数据才对吧
仔细研究,发现采集的是 sougou,不多最近数据代码看,看来,他选用每日采集,符合微信最新 10 篇文章规则。
之前也做了一款 WordPress 插件一键导入微信文章到网站中,并且突破防盗链,能够把图片下载下来,支持自动同步,如果要采集所有文章提供这样的服务,感兴趣可以搜一下 beepress,http://artizen.me/beepress
现在大部分爬虫都是采集搜狗的,还有一种基于中间人代理去爬取,现在看传送门的文章里面的图片好像都被防盗链弄掉了
这个站已经不行了,被百度上线的算法打击,断崖式下滑 http://ziyuan.baidu.com/wiki/1050
但是每日访客还是很牛逼
比以前掉了太多了,当然瘦死的骆驼比马大 https://lishi.aizhan.com/chuansong.me/randabr/2017-05-05/2017-11-05/


