项目地址:
https://github.com/Lee991211/Innovation_training.git
任务的确定:数据爬取和预处理
对于一个疫情下舆情预测系统,最重要的就是依照什么数据进行模型的训练。训练数据来源不同,模型预测出的舆情可能千差万别。微博作为月活用户数达5亿级别的平台,用户量的下沉度足以满足需求。因此以微博平台为主,知乎、今日头条、观察者网各个平台共同爬取。
爬取方法的确定:框架or脚本?selenium or scrapy?
对于爬取方法的选择应当与网站结构相对应,对微博而言,选择selenium还是scrapy成了一个问题。在框架的选择上,最初的想法是曾经使用过的selenium。
Selenium是一个自动化测试工具,可以驱动浏览器器执行特定的动作,如点击,下拉等。同时还可以获取浏览器当前呈现页面的源代码,可见即可爬。
selenium+python3
selenium在多个页面爬取上的表现是比较出色的,例如中国土地网的土地供应公告页面内容爬取,就可以有效率的做到标题链接的打开和文件内容的爬取。
scrapy+python3
与selenium作为一个自动化的网页测试工具不同,scrapy的目的更为直接而纯粹
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取(更确切来说, 网络抓取 )所设计的。也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。
scrapy的优点在于,该框架已经搭建好了几乎所有模块,我们所需要做的就是定义抓取的数据以及存放形式。鉴于微博的关键词搜索功能是按照发布时间在同一页面线性排列的,因而selenium可能并不适用。所以最终选择了scrapy作为微博的抓取工具
观察者网?
对于观察者网的爬取本来也想做成与微博类似的,按关键词和时间进行爬取的项目,但是考虑到可能会与微博造成数据类型上的重叠,于是怕去了观察者网首页,并不需要使用框架。