亲爱的同学们,经过本阶段的学习,大家对scrapy爬虫框架的运用是否已熟练掌握了呢?接下来请结合scrapy的相关知识点来完成下面的作业吧!

题目要求:

为了更加高效的进行数据抓取,请大家运用Scrapy框架对目标站点懂球帝资讯网站(http://www.dongqiudi.com/) 中头条、中超、深度、闲情、国际、英超、西甲、意甲、德甲标签下的足球新闻资讯数据进行抓取,并将抓取的数据保存至MongoDB数据库。
数据抓取过程中应当注意以下几点:
(1)合理运用浏览器的开发者模式分析目标站点URL结构、规律和目标抓取数据的定位、网页结构、
(2)抓取的目标信息包含项如下:新闻标题(title)、发表时间(release_time)、作者(author)、新闻内容(content)、抓取时间(crawl_time)、来源URL信息(from_url)、新闻中的图片URL信息(image_urls)
(3)编码时请运用面向对象思想及封装特性优化代码结构
(4)要求抓取足球新闻资讯文本内容和图片数据
(5)分析懂球帝头条标签中可解析最大页码为多少

运行效果:

(1)项目运行效果图
图片描述
(2)数据存储效果图
图片描述

作业描述

一、语言和环境

  1. 版本
    Python3.6或Python3.6以上版本
  2. 开发工具
    Pycharm

二、 程序整体要求

1、 划分功能模块,根据题目要求设置不同的类,在类中实现相应功能的管理。
2、 类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。
3、 要求Python代码书写、命名符合规范,在代码中添加必要的注释
4、 最终抓取数据效果与提供的页面效果图、结构保持一致,文字大小、背景色也不做统一要求
5、 将作业项目形成压缩文件并提交

三、 思路分析

由题目要求和运行效果,可以分析出项目中需要使用scrapy爬虫框架抓取懂球帝足球新闻资讯
使用scrapy startproject 项目名称(dongqiudi) 创建scrapy抓取项目
Startproject命令产出目录树如下
图片描述
在dongqiudi项目中创建爬虫解析文件scrapy genspider (解析文件名称)crawl_dongqiudi (域名)dongqiudi.com
创建爬虫解析文件后目录结构如下
图片描述
Scrapy startproject 项目名称 主要是创建项目结构
Scrapy genspider 爬虫解析文件名称 域名 创建爬虫解析器文件

  • 爬虫解析器文件(crawl_dongqiudi):
    <1>编辑items.py文件,编辑如下字段
    #抓取URL
    from_url = scrapy.Field()
    #新闻标题
    title = scrapy.Field()
    #发表时间
    release_time = scrapy.Field()
    #作者
    author = scrapy.Field()
    #新闻内容
    content = scrapy.Field()
    #抓取时间
    crawl_time = scrapy.Field()
    #图片信息
    images = scrapy.Field()
    image_urls = scrapy.Field()
    image_paths = scrapy.Field()
    <2>重写start_requests方法,构造各子页面新闻首页请求
    <3>设定实例方法handle_page_response(self,response),在本方法中解析首页请求的返回,解析出新闻标题、新闻资讯详情页URL和发表时间,并发送新闻资讯详情页请求、下一页请求。传递新闻URL,新闻标题,新闻发表时间到handle_detail方法
    <3>设定实例方法handle_detail(self,response),解析详情页请求返回,解析出新闻抓取时间,新闻资讯文本内容,作者,新闻图片URL,抓取时间,新闻标题,抓取URL信息,并保存入DongqiudiItem,通过yield传递到pipeline中
    <4>编辑pipeline文件中的DongqiudiPipeline类,定义Mongo连接信息,将解析到的懂球帝数据保存到Mongodb中,编辑DongqiudiImagePipeline类,编辑get_media_requests、item_completed、file_path方法,将图片数据保存到本地
    <5>编辑middlewares.py中间件文件DongqiudiProxyMiddleware类,设置代理,可选用阿布云代理
    <6>编辑settings.py文件,设定USER_AGENT为常规浏览器请求UA,ROBOTSTXT_OBEY为False,CONCURRENT_REQUESTS根据代理请求数设定,IMAGES_STORE图片保存路径,如’./dongqiudi_pic’,开启数据存储pipeline,图片存储pipeline,开启DongqiudiProxyMiddleware代理中间件
    <7> 通过创建main.py文件设置scrapy项目启动或在项目中使用scrapy crawl crawl_dongqiudi启动scrapy爬虫项目
评分标准是什么?

规范【10分】

(1)作业所涉及的类都封装在独立的 ".py"文件中
(2)类的定义、类的成员变量命名规范
(3)代码结构要层次分明
(4)Python代码规范及添加适量注释

程序整体运行效果【14分】

程序正常运行,且满足运行效果图和数据存储效果图

爬虫项目分析【20分】

(1)能够正确的分析出待抓取数据之间的结构关系
(2)能够正确分析出《头条》标签下的最大可解析页码

爬虫项目实现【56分】

(1)正确定义待爬取的数据字段
(2)在爬虫文件中正确编写爬虫的逻辑代码并实现
(3)正确定义管道存储文件并链接数据库
(4)利用中间件设置爬虫代理
(5)正确更改配置文件中的相关配置使爬虫正常启动
(6)设置爬虫的启文件

项目作业上传说明
第1步:上传你的作业压缩包
第2步:等待讲师一对一批复
第3步:查看讲师点评
上传作业

登录后查看更多作业,立即

意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师