使用python3 requests和bs4进行爬虫(二)爬取文章

Python016

使用python3 requests和bs4进行爬虫(二)爬取文章,第1张

为了做到更优雅,这次抛弃了urllib库的引用,使用requests和beautifulsoup搭配的方式进行

首先构建一个请求并且响应它

然后呢到上找一篇文章试试手,看一下网页源码找到文章的div

以及找到文章内容,仔细看看内容还挺不错哈哈

可以发现所有的内容都在p标签里面,那么接下来就简单多了只需要

f5运行一下

最后使用codecs库来进行文件操作将文章保存到本地

没错使用上requests和bs4之后爬取文章的工作是那么的轻松呢

效果图

使用Python爬取公众号文章主要两种方法:

微信传送门已被封杀,现存可用的是搜狗微信搜索,2013年腾讯以39.2%的持股和52.3%的投票权,成为搜狗第一大股东,2020年腾讯全资147亿收购搜狗,可以说搜狗已是腾讯的样子,而自2013年开始搜狗搜索就接入了微信公众号数据,因此实际上也能看做第一方的搜索接口。

域名: https://weixin.sogou.com/

可以直接搜索公众号或文章关键字获取数据,但是此方法有个比较大的问题,只能搜索公众号内容,而很多公众号其实是服务号,服务号使用此方法是搜索不到任何数据的,因此需要另一种方式进行爬取。

这个接口无法匿名访问,因此需要注册一个公众号进行操作

具体操作步骤:登录微信公众号,首页选择创作 图文消息 ,在编辑工具栏找到 超链接 ,在公众号一栏 选择其他公众号 ,之后输入需要获取的公众号名字进行搜索就会出现相匹配的公众号列表,最后点击所需公众号,就会以时间倒序方式显示具体文章列表,如下图:

返回数据格式,如下图:

爬取原理基本就结束了,具体接口分析过程较为简单就不列了。

由于微信公众平台登录验证较为严格,登陆时还需要进行收集扫码确认,因此确认最终使用 selenium 自动化进行登录获取 cookies 及 token 的工作,访问接口则使用 requests ,而因为详细文章数据是js动态加载出来,因此在这里依然选择通过 selenium 自动化获取页面,之后就可以通过xpath等方法获得文章内容。

资料查询中有网友称,此接口有访问频次限制,最少的出现过爬200篇文章就被封的现象,因此频率最好尽可能设置一个较大范围的随机数,且控制频率不要过多,代理无用,因为你是需要登录进行操作的。[手动狗头]

源码我想着放上来太长了,如需请留言。