您的位置:首页 > 编程语言 > Python开发

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

2018-02-11 23:41 399 查看
用Python+Selenium爬取今日头条关于江歌案的文章

关于江歌案的讨论和分析,我呢,当然是站在正义一方的,而且我也不想重复那些结论了。

不过网上仍然有很多关于江歌案的文章和讨论,我也想了解一下其他人的看法,了解一下舆情(笑)。但你让我一个个看下去,emmmmm……力不从心啊。

作为新时代的文科生,我就班门弄斧写了个小爬虫,爬了一些文章下来。

这篇文章就介绍一下这个。

一、准备

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

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

然后我们要使用到许多扩展包的功能。因此最好安装一个Python工具套装。只需要一次安装,以后大部分的功能就都已集成了。不必每次使用新功能,都去零敲碎打地安装新包了。

Python的套装有许多种,这里推荐的是anaconda。这款软件包的安装更为便捷,扩展包的涵盖范围与结构更合理。

请你到https://www.anaconda.com/download/下载anaconda套装。下拉网页找到下载位置。根据你的操作系统类型选择合适的版本。



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

接着请打开cmd命令台(命令提示符),键入以下命令。因为我不是单纯的只是爬取文章,还有词云制作,因而要下的包还有蛮多。

mkdir demo

cd demo

现在我们有一个专用的工作目录,叫做demo了。接下来进入demo文件夹,因为我已经创建了,所以如下图所示。



在命令行下,先执行:pip install wheel

然后,再执行:pip install wordcloud(此包常用于词云制作,本文不会用到)

以及:pip install jieba (此包本文不会用到)

接着执行:pip install selenium



同样,我已经全部安装了,我们需要的全部Python运行环境也终于装好了。

请务必按照上述步骤执行,确保每一步都已经顺利完成。否则一旦遗漏,后面运行程序会报错。

二、代码

在命令行下,执行:jupyter notebook

浏览器会自动开启,并且显示如下界面。

当然,那个文件不是本来就有的,这里不管它。这就是咱们刚才的劳动成果——安装好的运行环境了。我还没有编写程序。



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



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

我起的是今日头条爬取。



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

如下图所示,在文本框里敲入下列代码。务必逐字根据示例代码输入,空格数量都不可以有差别。这与语言特性有关,一时半会说不完。

这段代码引入(import)一些库,用于存为csv文件,控制时间,和控制selenium工具。然后我们定义了一个函数,用于将文本内容写入CSV文件中。输入后,按Shift+Enter键,就可以执行了。



当然,没什么用,因为还没写主函数呢。

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



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



这段则是将URL写入。

其实就是在今日头条下搜索“江歌案”出来的页面的地址。

运行。



如上图显示,Chrome受到selenium的控制,打开了相应网页,也就得到了该页面的html文档。然后写入下段代码吗,get一下这个页面。程序会自动打开相应页面。

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



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



然后你很快就会发现桌面出现了一个文档。



打开一下,可以看到:



最后一条:



转化为txt文件:



三、最后又不是最后

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

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

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

这样就能知道很多东西了。

不过快要考试了。

所以,只好下次了。


(先放张图)

注:本文写于17年12月份,起于个人兴趣。现在搬上来作为CSDN的首作(笑)。今后也要认真地学习,认真地写博客监督自己。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息