上一篇文章中,我们研究微信搜索的网页发现了下面这个地址:
我们再来看看这个网页有什么东西。
通过审查元素,可以发现每一篇微信文章都在一个“LI”标签里。
Class为img-box的DIV下面有一个IMG标签,这是文章的封面。
Class为txt-box的DIV下面有一个H3标签,H3标签下有一个A标签,这个就是文章的标题。而A标签里面的跳转连接就是文章的URL
Class为txt-box的DIV下面有一个P标签,它的class是txt-info,这个是文章摘要
Class为txt-box的DIV下面有一个class是s-p的DIV标签,这个是文章作者。
在s-p的属性里面,我看到一串数字。
这串数字很容易想到时间戳,我把它转换一下看看
果然能转换成时间,时间是今天中午,现在是晚上,我猜这个时间就是发布时间了。
好了,从上面网页我们可以得到以下几个信息。
1、 标题
2、 封面URL
3、 文章摘要
4、 作者
5、 发布时间
6、 文章URL
网页研究完毕,现在开始写代码,抓取上面的信息。
首先当然是要引入必要模块,和前几篇爬虫文章一样,引入下面2个模块。
前几篇爬虫文章有一个获取网页源码的函数,我们也加进来
获取网页文档对象
上面说到,每一篇微信文章都在一个LI里面。所以我们先获取所有LI
用for循环LI。我们先获取标题,上面说Class为txt-box的DIV下面有一个H3标签,H3标签下有一个A标签,这个就是文章的标题。
因为只有一个txt-box。所以我直接从找到第一个里面取标题了。
再来获取文章URL,也是和上面一样,上面是取A标签的文章,文章URL就是A标签的href属性。
根据上面研究网页得到的信息,文章摘要是Class为txt-box的DIV下面有一个P标签,它的class是txt-info, 我们来获取文章摘要。
获取作者
获取发布时间,我们也直接获取时间戳了,不再格式化它
最后获取文章封面URL
到此,一篇文章的6个主要信息,都已经获取到了。
这篇文章先到这里消化一下。
按照微信搜索的页面分类
有21个文章分类,下一篇我门来讲一下怎么获取这个21个分类指定页数的文章(比如获取每一个分类1-10页的所有文章),并且把他们存入MYSQL数据库里。