云采集(优采云7.0实验目的和要求1.1实验使用Pythonscrapy框架)

优采云 发布时间: 2022-04-18 12:14

  云采集(优采云7.0实验目的和要求1.1实验使用Pythonscrapy框架)

  1.实验目的和要求

  1.1 实验目的

  爬取公共管理学院所有新闻网站,了解和熟悉网络信息相关技术采集。

  1.2 实验要求

  使用任何可用的方法抓取四川大学公共管理学院()上的所有新闻,包括“新闻标题、新闻发布时间、新闻正文”三个字段。我们尝试过的方法有优采云data采集tools,Python爬虫代码。

  2.实验环境

  2.1优采云数据采集工具

  优采云采集器是云采集服务平台,提供数据采集、数据分析等功能,可视化图形化操作采集器。它的simple采集、custom采集等基本功能都可以免费使用。本实验使用优采云7.0版本的自定义采集函数,使用本地采集方法。

  2.2使用Python scrapy框架爬取

  本实验使用的Python版本为2.7.14,安装了Scrapy。使用服务器采集的方法。

  3.实验方案

  3.1优采云采集器实验方案

  3.1.1 登录版本优采云7.0,输入网址,新建采集任务

  

  新任务.png

  3.1.2为每个新闻链接制作翻页循环和点击循环

  

  点击loop.png

  

  翻页循环.png

  3.1.3 指定具体的采集规则

  对于每个新闻链接

  

  采集rules.png

  3.1.4 OK采集流程和数据

  

  采集进程.png

  

  采集格式预览.png

  3.1.5采集工具结果界面

  

  采集结果.png

  3.1.6 错误报告和补充采集结果

  经我们检查,报错页面有四种:

  A.链接网页内部也有嵌套链接,如“120周年庆典”等特殊网页链接;

  B.其他格式的网页,如视频、图片、外部网站链接等

  C.网页出错,无法打开;

  D.是一个单独的文章,但是可能会因为系统问题或者文章的不同格式(没有标题等)而爬不下来。

  

  补充采集结果1.png

  我们对每个出错的网页链接进行了单独的二次数据采集,图片、视频等B类格式的网页不是采集,最后是采集得到了导出数据结果的excel表格部分截图如下:

  

  补充采集结果2.png

  

  最后一节采集Results.png

  以上是优采云

  的一部分

  3.2 使用Python scrapy框架爬取实验程序

  3.2.1 云服务器配置:安装scrapy for Python

  (1)检查当前服务器是否配置了scrapy

  (2)退出Python交互,使用yum安装scrapy和一些依赖。

  

  安装scrapy.png

  经查询,解决办法是:

  vi /usr/libexec/urlgrabber-ext-down

  把head里的python改成和/usr/bin/yum里一​​样

  修改完成后,再次使用yum安装scrapy:

  

  修改后再次安装scrapy.png

  3.2.2 检查scrapy安装

  进入Python交互环境,导入scrapy enter,发现引用成功,退出交互环境。

  

  查看安装结果.png

  scrapy版本进入

  

  查看scrapy version.png

  版本信息检查成功。

  至此,Python scrapy已经在云服务器上配置成功。

  3.2.3编写代码并调试

  根据之前优采云的经验,我们可以看到采集需要三个实体:标题、日期和文字(另外一个实体是图片,暂时不需要)。

  scrapy startproject ggnews 进入

  cd /ggnews/ggnews 进入

  

  文件结构1.png

  

  文件结构2.png

  编写 ggnews.py

  

  编写 ggnews.png

  3.2.4 输入命令爬取获取数据

  输入scrapy crawl ggnews -o ggnews.xml

  出现以下错误

  

  错误1.png

  发生错误,但显然我们的代码中有一类项目。经查询,此错误用简单一句话描述:爬虫名称与项目名称相同,导致最终导入时出错。

  将蜘蛛名称修改为spidernews.py。名字虽然有点长,但是好像很容易理解。

  再次执行代码获取文件ggnews.json

  

  初始爬取结果.png

  发现初始爬取的结果是Unicode编码,不是理想的中文格式。查询后需要修改pipelines.py和settings.py这两个文件,使输出结果为中文格式。

  3.2.5 修改 pipelines.py 和 settings.py 文件

  

  修改管道文件.png

  

  修改设置文件.png

  3.2.6 解决压痕问题

  修改完成后再次运行命令scrapy crawl spidernews。出现了一个新问题:

  

  错误2.png

  查询后,这是缩进的问题。 Python 语言是一种对缩进非常敏感的语言,这给很多初学者造成了困惑,即使是经验丰富的 Python 程序员也可能掉入陷阱。最常见的情况是制表符和空格的混合会导致错误,或者肉眼无法区分的缩进。编译的时候会出现这样的错误“IndentationError: expected an indented block”,意思是这里需要缩进。您只需要按空格或 Tab(但不能混合)键在发生错误的行上缩进。

  修改完成,再次运行命令

  

  第二次抓取结果.png

  得到想要的结果。

  至此,使用Python scrapy框架的爬取过程就结束了。

  4.经验总结

  4.1优采云采集器经验总结

  经验总结

  由于本实验仅使用数据采集的功能,所以评价和总结仅针对数据采集的功能。 优采云可视化数据采集。如果你完全不懂爬虫代码,优采云是一个方便的网络数据工具采集。根据经验,公共管理学院新闻网站的爬取速度约为29条/分钟,数据可以导出为ex​​cel、CSV等格式。

  但是,它也有一些使用限制。首先,在成本方面,它的数据导出需要积分,每10条数据一个积分,不到10条数据计为10条。用户首次注册后,赠送2000积分;在采集数据数据量少的情况下可以免费使用,但是数据量大时需要支付一定的费用才能导出数据。二是使用方面。由于优采云是已经编写好的采集工具,使用采集数据会受到一定的限制,可能不如直接使用代码那么自由。指定采集数据的规则详情(如采集时间段、采集持续时间等)。

  4.2Python scrapy实验总结

  本次实验共爬取了407条数据,但大学新闻网站上却有458条新闻。为什么缺少 51 篇文章?我们还没有找到答案,希望在接下来的研究中解决这个问题!在data采集的过程中,爬取数据的规则和方法是最重要的部分。一定要充分利用浏览器的开发者工具,保证路径严格正确;此外,还有编码问题和分页问题。由于刚接触python,对python的需求不是很熟悉,导致修改时间比较长。在接下来的学习中,一定要尽快适应python的规则。此外,有足够的耐心和细心养好爬行动物。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线