




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二、基于Python的汽车数据爬取与分析1 课题内容和要求1.1 问题的提出1) 用 Python 语言自行编写爬虫框架或使用 Scrapy 框架,爬取汽车之家或易车网的车辆相关 数据,按照品牌、车系、年款、价格等信息进行分类和显示。2) 使用正则表达式从网页中提取有用的数据。 3) 可以实现多线程爬取,以提高爬取效率。 4) 在此基础上可以进一步获取用户反馈信息,评价不同车型的优劣。1.2 选题背景与意义在现在这种互联网浪潮下,信息正在扮演越来越重要的角色。人们获取信息,分析信息,利用信息。而怎样快速便捷地获取信息成为人们非常关注的问题。同时,随着中国工业化水平和经济水平的提高,汽车成为家庭必需品。人们对汽车信息的需求也在不断增大。在此背景下,我们选择了“基于python的汽车信息爬取与分析”这个课题,因为我们想要通过这次锻炼切实地解决一个现实问题。1.3 开发工具简介a) 运行环境如果要运行此软件,用户计算机必须有Python环境和Scrapy环境。b) 开发环境本软件基于Python3.6和Scrapy1.4开发Scrapy各组件版本号如下:Scrapy : 1.4.0lxml : 4.0.0.0libxml2 : 2.9.5cssselect : 1.0.1parsel : 1.2.0w3lib : 1.18.0Twisted : 17.5.0Python : 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) pyOpenSSL : 17.3.0 (OpenSSL 1.1.0f 25 May 2017)Platform : Windows-10-10.0.15063-SP0c) 开发工具Pycharm、cmder2 需求分析2.1 可行性分析 技术可行性:python在爬虫方面有资源和环境优势。易车网对爬虫脚本比较友好。 操作可行性:Scrapy作为一个非常强大的爬虫框架,有着它易用,高效的一面。同时由于Scrapy对于有python学习背景的人来说上手不算困难,故此项目可以用Scrapy来实现。2.2 系统数据需求 本系统最终将爬取到的数据以csv文件存储在本地项目根目录下,方便用户通过excel软件直接对数据进行查看和分析。2.3 系统的性能需求此系统基于Scrapy框架,由于Scrapy默认支持多线程爬取,系统的性能基本可以达到要求。而稍后的测试结果也佐证了此结果。3 概要设计3.1 系统结构的总体设计3.2 系统模块设计基于scrapy,我们的项目分为4个模块,分别是定义爬取数据模块、爬取模块、配置模块和数据处理模块。我们在item.py中CarItem类中定义要爬取的数据,如品牌、车系、年款、价格等等。爬取模块会直接引用该类创建的对象对数据进行保存。我们在pipelines.py中设置对爬取下来的数据的处理方式,比如存储方式、过滤去重等操作。该文件从bitauto.py文件中获取爬取到的信息,并进行相关处理。我们在settings.py中对项目进行一些必要设置,如优先级、多线程、延迟等。同时在测试时,我们可以根据修改此文件的配置信息来控制变量测试相关因素对爬取效率的影响。bitauto.py是主要爬取方法实现的文件。分析网页,获取信息,跳转页面等等核心操作全部由此文件来实现。4 详细设计类图:核心算法流程图:核心操作全部在bitauto.py中实现,故此部分主要描述bitauto.py的设计。具体实现采用面向过程的编程方法,具体到代码则是4个方法,分别是parse(),parse_detail(),parse_soft()和parse_word()方法。Parse()方法用于从主页面获取品牌信息列表,并生成相关车系链接并调用parse_detail()方法对车系页面进行处理。分析源码发现当前热销的汽车品牌保存在一个无序列表中。我们对此无序列表中的每个标签进行遍历,获取它的href属性并生成绝对链接。在每生成一个链接之后,我们可以在yield语句中调用request方法进到下级页面去获取相关信息。Parse_detail()方法用于获取某品牌的车系列表,并生成相关车辆具体信息页面的URL,调用parse_soft()方法对车辆的详情页面进行处理。分析当前页面源码发现各种车型都被包裹在一个标签中。我们可以对此标签下的标签进行获取,并得到href属性,这里得到的是相对链接,然后把它拼接成绝对链接,这样我们就获取到了每个车型的详情页面。同样使用yield调用request方法可以进行下级页面的分析。Parse_soft()方法爬取车辆的基本信息,包括品牌、车系、年款、价格和评分,并生成口碑链接调用parse_word()方法对车辆的口碑信息进行处理。此页面的处理比较简单,我们需要的各种信息都以各种标签的形式直接出现在源码中,直接可以提取出来。然后获取口碑链接以同样的方法跳转口碑页面。Parse_word()方法用于获取车辆的优缺点和用户评论,此方法是最后一个方法。此页面中将优点、缺点和评论分别放在一个中,对进行遍历,即可得到相关数据。它们的调用关系是逐级调用。5 测试数据及其结果分析为了测试爬取数据的正确性,我们设计爬取易车网当前热销的16款品牌下的所有车型,共计约500款,而我们对此爬取的结果与我们直接在网站上记录的结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省徐州市鼓楼区2024-2025学年三年级数学第二学期期末调研模拟试题含解析
- 湖南文理学院芙蓉学院《误差理论与数据处理》2023-2024学年第二学期期末试卷
- 浙江省杭州市拱墅区公益中学2024-2025学年初三4月质量检测试题(四)数学试题含解析
- 山东省淄博市临淄区金山中学2024-2025学年下学期初三年级期中考试英语试题试卷含答案
- 山东省青岛第二中学2024-2025学年高考第三次质量调研物理试题试卷含解析
- 重庆外语外事学院《土木工程施工与管理软件应用》2023-2024学年第二学期期末试卷
- 山东省济南历下区2024-2025学年高中毕业班第一次综合质量检查数学试题含解析
- 昆明艺术职业学院《土地管理信息系统》2023-2024学年第二学期期末试卷
- 湛江市高一上学期期末调研考试语文试题
- 乳制品企业良好生产规范
- 2025中国新型储能行业发展白皮书
- 海南省天一大联考2024-2025学年高三学业水平诊断(四)语文试题及答案
- 社会认知力测试题及答案
- 肉鸡供需合同协议网页
- 旅游合同签署委托协议
- “条令条例学习月”主题授课课件
- 海洋生态环境监测技术-全面剖析
- 2024年中国资源循环集团有限公司招聘考试真题
- 《机械制图(多学时)》中职全套教学课件
- 骆驼祥子考点单选题100道及答案解析
- 新教科版小学1-6年级科学需做实验目录
评论
0/150
提交评论