




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
综合案例——爬取业务网站C本章学习目标分析业务网站C的网页结构和内容使用requests库编写爬虫代码获取指定的动态数据使用urlencode方法编码使用pymysql库实现数据的持久化在进入业务网站C界面时,在切换“城市”时会出现不同的汽车信息。通过“开发者工具”的Network选项卡中的XHR可以发现出现了一个动态数据请求URL,如图5-1所示。因此,接下来将围绕该URL进行分析。4.5.1
页面分析图5-1动态数据请求URL通过“开发者工具”的Network栏目中的XHR查看该URL的Preview可以看到返回的动态数据,如图5-2所示。该数据是一个字典和列表相互嵌套使用的数据集合。因此,要获得指定的数据就必须要对该数据集合进行准确的解析。图5-2动态数据的结构和内容在“Headers”选项卡,可以看见这个AJAX请求的URL地址是./ashx/AjaxIndexHotCarByDsj.ashx?cityid=110100其中cityid参数为110100,如图5-3所示图5-3切换该网站的城市位置如图5-4所示,打开“network”选项卡发现XHR中又出现了AJAX条目,并且和上一个城市的AJAX条目有共同之处。参数cityid发生了改变,变为了500100。./ashx/AjaxIndexHotCarByDsj.ashx?cityid=500100图5-4由此可以分析得出,此处的cityid参数就是指代不同的城市编码,并根据不同的cityid值返回不同城市的汽车信息,如图5-5所示。图5-3通过使用“开发者工具”详细查看并分析了页面内容,现在已经获得了动态数据的结构和内容。因此,这里使用requests库编写自定义的爬虫代码,针对页面结构通过使用循环语句获取到页面结构中指定的动态数据。4.5.2
获取动态数据1)导入urlencode和requests,前者表示使用urlencode方法编码url,后者表示使用requests对象来发送请求,并返回响应的数据。fromurllib.parseimporturlencodeimportrequests2)找到需要模拟的AJAX请求的url,并将其复制给变量original_url。fromurllib.parseimporturlencodeimportrequests3)根据该AJAX条目的RequestHeaders设置符合该AJAX的请求基本信息。requests_headers={'Referer':'./beijing/','User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)''Chrome/57.0.2987.133Safari/537.36','X-Requested-With':'XMLHttpRequest',}4)自定义一个函数get_one(cityid),讲形参设置为cityid,表示将接收一个代表城市编码的参数,并将该参数传入字典p中。使用urlencode()方法将字典p的值添加到original_url中,得到完整的URL请求。在try..except..语句中使用requests的get()方法获得上面的URL,并通过设定判断条件,将得到的response响应数据格式化为JSON。defget_one(cityid):p={'cityid':cityid}complete_url=original_url+urlencode(p)try:response=requests.get(url=complete_url,params=requests_headers)ifresponse.status_code==200:returnresponse.json()exceptrequests.ConnectionErrorase:print('Error',e.args)5)再自定义一个函数parse(json),将形参设置为Json,表示这里将接收的数据格式为JSON。通过前面的分析得出,这个AJAX返回的数据是一个字典列表,因此,通过设置判断条件,使用json[0].get(‘name’)将获得第一个字典集合中的车型名称。defparse(json):ifjson: item=json[0].get(‘
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 俯卧式学习体验中AR技术的创新应用与效果评估
- 医疗培训课程中的动力机制探索
- 构建教育机器人伦理框架的实践与思考
- 智能黑板与交互式教学技术的融合
- 2025年四川省遂宁市船山区二中物理高一第二学期期末学业水平测试试题含解析
- 打破边界偏远区域教育技术新趋势研究
- 2025届广东省惠来一中物理高一下期末统考模拟试题含解析
- 校园心理环境建设与学生潜能开发
- 中职教程课件
- 智慧医疗中教育技术的应用与发展趋势
- 建材家居业商业计划书
- CNAS-CL01-A004:2018 实验室能力认可准则在医疗器械检测领域的应用说明
- 2025年中国果蔬加工行业市场调研分析及投资战略咨询报告
- DB50-T 1727.2-2024 零散天然气橇装回收安全技术规程 第2部分:压缩天然气
- 店面工程装修合同书
- DB33T 1149-2018 城镇供排水有限空间作业安全规程
- 反肩关节置换术的护理
- 内蒙古交通集团有限公司社会化招聘考试试卷及答案2022
- 国家开放大学《当代中国政治制度》期末考试题库
- 智能智能服务系统开发合同
- 2025届新高考语文古诗文默写100题汇编(含答案解析)
评论
0/150
提交评论