在python学习之路(20):基于python网络爬虫抓取微信公众号的文章「1」
这篇文章中,我们对以下地址,进行了分析研究。
可以得出2点结论:
1、 后面的1.html是页数,改不同的数字就是不同的页数。
2、 后面的pc_0代表不同的分类。
Pc_0-pc_20分别对应以下21个分类。
在python学习之路(19):基于python网络爬虫抓取微信公众号的文章「2」
这篇文章中,我们获取到了微信文章的六个主要信息。附上源码:
今天这篇文章要对上面的代码改动一下,让它能够获取上面21个分类。并且每个分类都获取前5页的文章,这个页数可以自己定义,然后把抓取的到文章存到MYSQL数据库。
一个微信文章的六个信息分别是:
1、 标题
2、 封面URL
3、 文章摘要
4、 作者
5、 发布时间
6、 文章URL
我们加一个主键ID,然后再加一个"类型"字段,然后在数据库建一张article表。主键ID设置为自增。
然后在把21个微信文章的分类存为一个python列表:
因为确定分类只有21个,所以我们可以直接写一个for循环,从0-20。
上面是循环分类,我们再获取每个分类的前五页,所以在上面的循环里再嵌套一个循环。
上面代码里i就是分类对应的数字,page就是页数,之所以加1,是因为for循环从0开始。
接下来拼接URL。
从上面的输出结果可以看出来,每个分类都输出了1-5页。
接下来就是把上一篇的代码放到这个循环里了。
这里加了一行articletype=type[i]。这个得到当前的分类。
接下来就是存入数据库了。
把python学习之路(13):连接 Mysql 数据库及简单的增删改查回滚操作这篇文章的代码写进来。
先引入模块:
再连接数据库:
连接数据库的代码你可以写在代码的开头。
然后在循环里写SQL语句。
上面用到的3个引号是换行的意思。
执行SQL语句,顺便把上面的%号,替换成抓取到的数据。
关闭数据库
上面的代码应该要用前几篇说到的异常来捕捉它,这里为了简便,就不写了。
执行完之后,看一下数据库。
已经插入成功了。
这里要注意上面的代码一定要捕捉异常。因为插入这么多条数据,可能会出错的,我上面的运气不错,没出错,一次全部插入成功。
至于怎么捕捉异常请阅读:python学习之路(16):python中的异常捕捉与异常处理
另外,上面抓取到的数据价值不大,因为上面抓取到的文章URL会过期。不知道大家有不有破解微信文章链接过期的方法。这里写这个代码只是为了练习python爬虫。
(抓取微信文章3篇完结)
,