用Python+Selenium爬取今日头条关于江歌案的文章

用Python+Selenium爬取今日头条关于江歌案的文章

关于江歌案的讨论和分析,我呢,当然是站在正义一方的,而且我也不想重复那些结论了。
不过网上仍然有很多关于江歌案的文章和讨论,我也想了解一下其他人的看法,了解一下舆情(笑)。但你让我一个个看下去,emmmmm……力不从心啊。
作为新时代的文科生,我就班门弄斧写了个小爬虫,爬了一些文章下来。
这篇文章就介绍一下这个。


一、准备

对于这方面有所了解的人来说可能没什么,但我还是写一下吧。

首先,我们需要安装Python运行环境。如果你用的是macOS,那么你的系统里面实际已经预装好了Python。如果是windows,可以上网搜索python官网,进去下载相应版本即可。

然后我们要使用到许多扩展包的功能。因此最好安装一个Python工具套装。只需要一次安装,以后大部分的功能就都已集成了。不必每次使用新功能,都去零敲碎打地安装新包了。
Python的套装有许多种,这里推荐的是anaconda。这款软件包的安装更为便捷,扩展包的涵盖范围与结构更合理。
请你到https://www.anaconda.com/download/下载anaconda套装。下拉网页找到下载位置。根据你的操作系统类型选择合适的版本。

用Python+Selenium爬取今日头条关于江歌案的文章

选择3.X版本,这是python的未来。

接着请打开cmd命令台(命令提示符),键入以下命令。因为我不是单纯的只是爬取文章,还有词云制作,因而要下的包还有蛮多。
mkdir demo
cd demo
现在我们有一个专用的工作目录,叫做demo了。接下来进入demo文件夹,因为我已经创建了,所以如下图所示。
用Python+Selenium爬取今日头条关于江歌案的文章
在命令行下,先执行:pip install wheel
然后,再执行:pip install wordcloud(此包常用于词云制作,本文不会用到)
以及:pip install jieba (此包本文不会用到)
接着执行:pip install selenium
用Python+Selenium爬取今日头条关于江歌案的文章
同样,我已经全部安装了,我们需要的全部Python运行环境也终于装好了。
请务必按照上述步骤执行,确保每一步都已经顺利完成。否则一旦遗漏,后面运行程序会报错。

二、代码

在命令行下,执行:jupyter notebook
浏览器会自动开启,并且显示如下界面。
当然,那个文件不是本来就有的,这里不管它。这就是咱们刚才的劳动成果——安装好的运行环境了。我还没有编写程序。

用Python+Selenium爬取今日头条关于江歌案的文章


回到Jupyter笔记本的主页面。我们点击New按钮,新建一个笔记本(Notebook)。在Notebooks里面,请选择Python 3选项。

用Python+Selenium爬取今日头条关于江歌案的文章

系统会提示我们输入Notebook的名称。程序代码文件的名称,你可以随便起。然后就出现了一个空白的笔记本,供我们使用了。
我起的是今日头条爬取。

用Python+Selenium爬取今日头条关于江歌案的文章


接着进入该ipynb文件,看到文本框。

如下图所示,在文本框里敲入下列代码。务必逐字根据示例代码输入,空格数量都不可以有差别。这与语言特性有关,一时半会说不完。
这段代码引入(import)一些库,用于存为csv文件,控制时间,和控制selenium工具。然后我们定义了一个函数,用于将文本内容写入CSV文件中。输入后,按Shift+Enter键,就可以执行了。
用Python+Selenium爬取今日头条关于江歌案的文章
当然,没什么用,因为还没写主函数呢。

然后,分别照下图键入相应代码。

用Python+Selenium爬取今日头条关于江歌案的文章

这段用于打开Chromedriver,即为谷歌浏览器驱动程序。事先要下好存入相应目录 。


用Python+Selenium爬取今日头条关于江歌案的文章
这段则是将URL写入。
其实就是在今日头条下搜索“江歌案”出来的页面的地址。
运行。
用Python+Selenium爬取今日头条关于江歌案的文章
如上图显示,Chrome受到selenium的控制,打开了相应网页,也就得到了该页面的html文档。然后写入下段代码吗,get一下这个页面。程序会自动打开相应页面。

接着是下述内容,这里难以全部说清,简单的说,我找到了其中的文章元素,进去抓取了发布者的id、发布时间、文章标题和文章内容。并用上面定义的towrite函数写入文档中。
用Python+Selenium爬取今日头条关于江歌案的文章

输入后,按Shift+Enter键,就可以执行了。

用Python+Selenium爬取今日头条关于江歌案的文章


然后你很快就会发现桌面出现了一个文档。
用Python+Selenium爬取今日头条关于江歌案的文章

打开一下,可以看到:
用Python+Selenium爬取今日头条关于江歌案的文章
最后一条:
用Python+Selenium爬取今日头条关于江歌案的文章
转化为txt文件:
用Python+Selenium爬取今日头条关于江歌案的文章


三、最后又不是最后

虽然介绍有点长,但其实用不了多久,也就十几行代码。或许会觉得太麻烦了,但如果把上面代码中range()内的数值改为1000呢,那就可以抓取多少文章下来啊。

当然,那时也可以换一种框架。

本来还有后文的,也就是用文档内容制作词云提取关键词,分析文本中的情感,看人们的情绪如何随着事件进程变化的(这就是为什么我要爬取发布时间的原因了),然后绘画一下时间序列上的舆情分布图表……还想试一试SPSS社会统计学软件的作用……
这样就能知道很多东西了。

不过快要考试了。
所以,只好下次了。
用Python+Selenium爬取今日头条关于江歌案的文章(先放张图)
注:本文写于17年12月份,起于个人兴趣。现在搬上来作为CSDN的首作(笑)。今后也要认真地学习,认真地写博客监督自己。