首页 >深度 >

全球观天下!Python爬虫轻松获取当天公众号文章

随着微信公众号的普及,越来越多的人开始在微信上阅读新闻和文章。而对于一些关注度较高的公众号,每天都会更新大量的文章,但是如果想要查看当天所有的文章,需要不断地手动翻页,非常麻烦。那么有没有一种方法可以自动化地获取当天公众号的所有文章呢?答案是肯定的,通过使用Python编写爬虫程序,我们可以轻松地实现这个功能。

一、分析目标网站

首先我们需要确定我们要爬取哪个网站。在本篇文章中,我们以“机器之心”公众号为例进行讲解。打开“机器之心”公众号主页后,我们可以看到右上角有一个搜索框。


(资料图)

我们输入“2023年6月1日”,并点击搜索按钮后,会跳转到一个新页面,页面地址为:

二、获取页面源代码

接下来我们需要获取这个页面的源代码。在Python中,我们可以使用requests库来发送HTTP请求,并获取服务器返回的响应结果。代码如下:

python import requests url =";action=edit&isNew=1&type=10&isMul=1&isNew=1&share=1&lang=zh_CN&token=2272431683" headers ={ "User-Agent":"Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"} response = requests.get(url, headers=headers) html = response.text

三、解析页面源代码

获取到页面的源代码后,我们需要对其进行解析,从中提取出我们所需要的信息。在Python中,我们可以使用BeautifulSoup库来解析HTML页面。首先,我们需要安装BeautifulSoup库:

python pip install beautifulsoup4

然后,我们可以使用如下代码来解析页面:

python from bs4 import BeautifulSoup soup = BeautifulSoup(html,"lxml")

四、获取文章列表

在页面中,每篇文章都被包含在一个class属性为“weui_media_bd”的div标签中。因此,我们可以通过查找所有的这样的div标签,来获取到当天发布的所有文章。代码如下:

python articles = soup.find_all("div", class_="weui_media_bd")

五、提取文章标题和链接

在每个包含文章的div标签中,文章标题被包含在一个class属性为“weui_media_title”的h4标签中,文章链接被包含在一个class属性为“weui_media_title”的a标签中。因此,我们可以通过查找这两个标签,来获取到每篇文章的标题和链接。代码如下:

python for article in articles: title = article.h4.text.strip() link = article.a["href"]

六、保存数据

最后,我们可以将获取到的所有文章标题和链接保存到一个文件中。代码如下:

python with open("articles.txt","w", encoding="utf-8") as f: for article in articles: title = article.h4.text.strip() link = article.a["href"] f.write(title +"\t"+ link +"\n")

七、完整代码

python import requests from bs4 import BeautifulSoup url =";action=edit&isNew=1&type=10&isMul=1&isNew=1&share=1&lang=zh_CN&token=2272431683" headers ={ "User-Agent":"Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"} response = requests.get(url, headers=headers) html = response.text soup = BeautifulSoup(html,"lxml") articles = soup.find_all("div", class_="weui_media_bd") with open("articles.txt","w", encoding="utf-8") as f: for article in articles: title = article.h4.text.strip() link = article.a["href"] f.write(title +"\t"+ link +"\n")

八、总结

通过使用Python编写爬虫程序,我们可以轻松地获取当天某个公众号的所有文章。但是需要注意的是,爬虫程序一定要遵守网站的相关规定和法律法规,不得进行恶意攻击和侵犯他人隐私等行为。

关键词:

责任编辑:Rex_11