Python实现微信公众号文章自动抓取,轻松获取文章列表!

优采云 发布时间: 2023-05-03 22:33

  微信公众账号是自媒体创作的重要平台,但是手动逐一抓取文章列表的效率较低。本文将介绍如何使用Python实现微信公众账号文章列表的自动抓取,提高自媒体创作效率。

  一、背景介绍

  在自媒体创作过程中,经常需要参考其他公众账号的文章内容。但是手动逐一搜索和查看文章列表效率较低、耗时耗力,因此我们可以通过编写Python程序实现自动化抓取。

  二、环境准备

  本文使用Python 3.6版本,并安装以下第三方库:

  - requests:用于发送HTTP请求

  - BeautifulSoup4:用于解析HTML页面

  三、抓取流程

  1.获取登录信息

  首先需要获取登录的cookie信息,通过浏览器登录微信公众平台后,在开发者工具中查看cookie信息,复制到程序中。

  2.抓取文章列表

  

  在登录状态下,访问指定公众账号首页地址,可以获取到该账号最新发布的若干篇文章。通过分析页面结构,可以发现文章列表以JSON格式返回,因此只需解析该JSON数据即可获取文章列表。

  3.解析文章详情页

  获取到文章列表后,可以从中提取出文章的URL地址,然后访问该地址获取文章详情页的HTML页面。通过解析该页面,可以获取到文章的标题、发布时间、正文内容等信息。

  4.存储数据

  将获取到的文章信息存储到本地文件或数据库中,方便后续分析和使用。

  四、代码实现

  下面是Python代码实现微信公众账号文章列表抓取的示例:

  9124f3bace2c53be0cbc40e2643c5c81#设置登录cookie信息

cookies ={

'login_sid_t':'...',

'mid':'...',

'mp_edition_change_time':'',

'mp_version':'',

'pass_ticket':'',

'ua_id':''

}

#获取指定公众账号的文章列表

def get_article_list(account_id):

url =f'https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz={account_id}&scene=124&#wechat_redirect'

headers ={

'User-Agent':'Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'

}

response = requests.get(url, headers=headers, cookies=cookies)

soup = BeautifulSoup(response.text,'html.parser')

json_data = soup.select_one('#js_profile_qrcode > div > div > div > span').text.strip()

article_list = json.loads(json_data)['list']

return article_list

#获取指定文章详情页信息

def get_article_detail(article_url):

headers ={

'User-Agent':'Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'

}

response = requests.get(article_url, headers=headers, cookies=cookies)

soup = BeautifulSoup(response.text,'html.parser')

title = soup.select_one('#activity-name').text.strip()

publish_time = soup.select_one('#publish_time').text.strip()

content = soup.select_one('#js_content').text.strip()

return {

'title': title,

'publish_time': publish_time,

'content': content

}

#示例:抓取“优采云”公众账号最新10篇文章

if __name__=='__main__':

account_id ='MzI4MTk2NzUwMQ=='

article_list = get_article_list(account_id)[:10]

for article in article_list:

article_url = article['app_msg_ext_info']['content_url'].replace('amp;','')

article_detail = get_article_detail(article_url)

print(article_detail['title'], article_detail['publish_time'])

  五、总结

  本文介绍了如何使用Python实现微信公众账号文章列表的自动抓取,帮助自媒体创作者提高创作效率。通过分析页面结构和解析HTML页面,可以获取到文章的标题、发布时间、正文内容等信息。希望本文能对读者有所帮助。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线