上一篇文章中,我们研究微信搜索的网页发现了下面这个地址:

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

我们再来看看这个网页有什么东西。

通过审查元素,可以发现每一篇微信文章都在一个“LI”标签里。

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

Class为img-box的DIV下面有一个IMG标签,这是文章的封面。

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

Class为txt-box的DIV下面有一个H3标签,H3标签下有一个A标签,这个就是文章的标题。而A标签里面的跳转连接就是文章的URL

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

Class为txt-box的DIV下面有一个P标签,它的class是txt-info,这个是文章摘要

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

Class为txt-box的DIV下面有一个class是s-p的DIV标签,这个是文章作者。

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

在s-p的属性里面,我看到一串数字。

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

这串数字很容易想到时间戳,我把它转换一下看看

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

果然能转换成时间,时间是今天中午,现在是晚上,我猜这个时间就是发布时间了。

好了,从上面网页我们可以得到以下几个信息。

1、 标题

2、 封面URL

3、 文章摘要

4、 作者

5、 发布时间

6、 文章URL

网页研究完毕,现在开始写代码,抓取上面的信息。

首先当然是要引入必要模块,和前几篇爬虫文章一样,引入下面2个模块。

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

前几篇爬虫文章有一个获取网页源码的函数,我们也加进来

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

获取网页文档对象

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

上面说到,每一篇微信文章都在一个LI里面。所以我们先获取所有LI

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

用for循环LI。我们先获取标题,上面说Class为txt-box的DIV下面有一个H3标签,H3标签下有一个A标签,这个就是文章的标题。

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

因为只有一个txt-box。所以我直接从找到第一个里面取标题了。

再来获取文章URL,也是和上面一样,上面是取A标签的文章,文章URL就是A标签的href属性。

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

根据上面研究网页得到的信息,文章摘要是Class为txt-box的DIV下面有一个P标签,它的class是txt-info, 我们来获取文章摘要。

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

获取作者

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

获取发布时间,我们也直接获取时间戳了,不再格式化它

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

最后获取文章封面URL

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

到此,一篇文章的6个主要信息,都已经获取到了。

这篇文章先到这里消化一下。

按照微信搜索的页面分类

python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」

有21个文章分类,下一篇我门来讲一下怎么获取这个21个分类指定页数的文章(比如获取每一个分类1-10页的所有文章),并且把他们存入MYSQL数据库里。