欢迎访问
这是个实用的Python网站

用Python爬虫爬取公众号文章

经常有读者微信私聊我,问我有没有博客之类的,因为在手机上看公众号技术文章没有电脑上方便。确实,手机上看截图需要点击放大才能看得更清楚,代码也需要左右滑动才能看到全部。我的文章大部分都是首发于公众号,有时博客也会同步一份的。

其实在电脑网页上也是可以查看公众号和公众号文章的。搜狗微信搜索是搜狗在 2014 年推出的一款针对微信公众平台而设立的。我试着在搜狗微信上搜索了下我的公众号「Python知识圈」可以搜到,搜索出来的文章只能展示最近发表的前 10 篇文章。

在搜狗微信上,我们也可以通过关键字去搜索公众号文章。每个关键字会查出 100 篇文章,每页显示 10 篇文章,分 10 页显示。

今天这篇文章我用 Python 爬虫爬取用关键字搜索出来的 100 篇文章并以 csv 文件的形式保存在本地。这篇文章代码比较简单,大佬不用往下看了,写此文的目的是为了大家在网页上更方便地阅读技术文章,在浏览器中打开保存的文章链接即可看文章。

项目环境

语言:Python 3
编辑器:Pycharm

项目结构

本程序主要由几部分组成:

  • get_info():根据链接提取文章信息。
  • mkdir():创建储存信息的文件夹。
  • write2csv():将文章信息写入到 csv 文件中。
  • 主函数:输入关键字,调用函数保存信息。

代码分析

浏览器打开搜狗微信,输入关键字搜索文章,点击下一页,观察页面链接的规律,去掉链接中无关信息后链接可简化为:(左右滑动查看全部)

其中 query 表示搜索的关键字,type=2 表示搜索的类型是公众号文章,page 表示就是表示当前的页面数。

提取文章信息

由于公众号文章是动态加载的,我用了 selenium 库去获取页面信息。提取信息包括文章标题、文章链接、文章简介、发文日期。

储存目录

提供一个信息储存的目录,判断此目录是否存在,不存在的话就新建一个,并切换到此目录下。

保存信息

把上面方法返回的数据信息保存在 csv 文件中,保存的文件名称用输入的关键字,保存的时候以追加的形式 a 来保存数据,如果以 w 的话,分页保存的时候会覆盖掉前一页的数据。

主函数

输入关键字,执行时以关键字作为名称保存 csv 文件,总共 10 页,做一个循环,为了让页面信息全部加载出来,每页我设置了等待时间 1 秒。

全部源码可在我的微信公众号「Python知识圈」后台回复「文章」获取。

 

赞(0) 打赏
未经允许不得转载:转载请到公众号「Python知识圈」联系作者授权!Python知识圈 » 用Python爬虫爬取公众号文章

评论 抢沙发