教学课件9:动态网页数据采集-ajax与json.pptVIP

教学课件9:动态网页数据采集-ajax与json.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
正版课件 内容可修改;动态网页的爬取;1、了解动态网页的常用技术 2、理解静态动态网页的判定 3、掌握json数据的读取以及解析方法 4、掌握通过浏览器开发者工具逆向分析的方法;1;动态网页概述;动态网页概述;动态网页概述;DHTML是Dynamic HTML的简称,就是动态的HTML,是相对传统的静态HTML而言的一种制作网页的概念。DHTML其实并不是一门新的语言,它只是HTML、CSS和客户端脚本的一种集成,即一个页面中包括 HTML+CSS+JavaScript (或其他客户端脚本)。 DHTML不是一种技术、标准或规范,只是一种将目前已有的网页技术、语言标准整合运用,制作出能实时变换页面元素效果的网页设计概念。比如,腾讯新闻详情页首次加载只是加载很少的页面数据,部分数据隐藏在javascript脚本中,使用requests库无法完整获取页面html。 从爬虫的角度看,如果网站使用动态网页技术,获取到的网页HTML中不会出现我们关心的数据或者数据掩藏在javascript脚本中。 ;1;1、动态网页的判定 那么如何判定一个网页到底是静态网页还是动态网页呢? 最简单的办法是在浏览器中鼠标右键,选择“查看网页源代码”,在网页源代码中查找需要爬取的数据,如果无匹配记录,基本上可以确定网站采用动态网页技术。但是如果网站采用动态和静态混合技术,这种方式往往会被误判。如腾讯首页,鼠标滚动到娱乐频道,页面能够正常显示。;其实腾讯首页采用动态和静态混合技术,当滚动鼠标时,页面数据动态加载。判定动态网页最有效的判定方式为“禁用浏览器的JavaScript”。以下以Chrome浏览器最新版为例进行说明。点击浏览器的“自定义及控制 google chrome”按钮,在左侧“设置”中选择“隐私设置和安全性” 在右侧栏目中点击“网站设置”。然后选择底部的”JavaScript”,鼠标点击“允许(推荐)”后的开关控件,将选项“允许(推荐)”调整为“已禁止 ;设置完成后关闭页面,重新打开腾讯首页,滚动到娱乐频道。如图所示。表示腾讯首页为了提高访问效率,采用动态和静态相结合的技术。 ;动态网页的判定及爬取方法;动态网页的判定及爬取方法;动态网页的判定及爬取方法;动态网页的判定及???取方法;动态网页的判定及爬取方法;1;JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 Json对象使用点操作符来进行访问修改,也可以用[“key”]的方式来进行访问修改。 var obj, x; obj = { name:abc, alexa:999, site:null }; x = ; #修改 = aaa“ x = obj[name]; JSON 对象中数组可以包含另外一个数组,或者另外一个 JSON 对象。 例如: { “key” : [ {“key” : “value” , “key”:[“value1”,“value2”,“value3”] },]} ;在执行爬虫项目的过程中,有时返回的不是一个html页面而是json格式数据,此时对数据的解析非常重要。 对于json数据的解析有两种方式 1、采用正则表达式解析 比如我们要获取“amount”的内容,可以采用以下方式获取: Import re bookname= re.findall(rbookName:(.*?),, content) #使用正则提取bookname字段,其中content是爬取下来内容。;2、基于json格式进行获取 实际上json的数据格式与python的dict是有极大的类似之处。在python的import json这个包里面提供了两个经典的预处理方法: json.dumps() #将列表或字典转化为json格式的**字符串** json.loads() #把json格式的字符串转化为python对象 ;1;【任务描述】 爬取软科中国大学排名,爬取信息包括排名、学校名称、省市、总分。爬取后的数据保存在CSV文件中。软科网址/rankings/bcur/2020。网站参考页面如所示。 ;【任务分析】 打开网址后,F12打开浏览器开发者工具,切换到Network选项卡,F5刷新页面后,分别点击XHR、JS、Doc三种类型的请求,通过preview观察拦截到请求的响应数据是否与显示数据匹配。最后发现网站使用的是Ajax请求,数据格式为json格式。;【任务分析】 在json数据格式这里查看网页的“headers”,得到能获取到大学排名的json数据的网站url,作为网页爬虫get函数的地址。;【任务分析】 在“response”中将网页爬取

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5342120324000033

1亿VIP精品文档

相关文档