- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)