云采集(优采云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条/分钟,数据可以导出为excel、CSV等格式。
但是,它也有一些使用限制。首先,在成本方面,它的数据导出需要积分,每10条数据一个积分,不到10条数据计为10条。用户首次注册后,赠送2000积分;在采集数据数据量少的情况下可以免费使用,但是数据量大时需要支付一定的费用才能导出数据。二是使用方面。由于优采云是已经编写好的采集工具,使用采集数据会受到一定的限制,可能不如直接使用代码那么自由。指定采集数据的规则详情(如采集时间段、采集持续时间等)。
4.2Python scrapy实验总结
本次实验共爬取了407条数据,但大学新闻网站上却有458条新闻。为什么缺少 51 篇文章?我们还没有找到答案,希望在接下来的研究中解决这个问题!在data采集的过程中,爬取数据的规则和方法是最重要的部分。一定要充分利用浏览器的开发者工具,保证路径严格正确;此外,还有编码问题和分页问题。由于刚接触python,对python的需求不是很熟悉,导致修改时间比较长。在接下来的学习中,一定要尽快适应python的规则。此外,有足够的耐心和细心养好爬行动物。