最近需要综合微信文章内容对微信公众号进行分析,考虑使用python自动对微信公众号文章url列表进行爬取,获取页面显示的纯文字信息。
我们很容易联想到使用requests解析url,获取html,再层层剥离标签,获得纯文字信息,但是不同的微信公众号,甚至同一个公众号下排版可能不同,剥离标签时很难找到统一的规律,因而十分困难。requests_html和requests师出同门,比requests更简单易用,具体可参考这里,使用其中的一个方法可直接将所有标签剥离,再从中获取文字。
from requests_html import HTMLSession
session = HTMLSession()
for url in df_list: #df_list为url列表
r = session.get(url)
a = r.html.text.split('\n') #r.html.text可去掉html中的所有标签
flag = False #使用flag来确定是否为需写入的内容
for num in range(len(a)):
if '功能介绍' in a[num]: #写入‘功能介绍’以后的内容
flag = True
continue
elif 'var first_sceen__time' in a[num]: #写入‘var first_sceen__time’以前的内容
flag = False
elif flag:
with open('文章内容', 'a') as f: #使用追加模式写入文件
f.write(a[num])