版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XpathCookie与session的区别?利用Requests库(cookie和post)模拟登录的2种方法。复习总结requests库的高级用法掌握xpath的基本用法学会CSV的数据保存方法教学目标1Xpath的基本用法静态网页数据采集--XpathRequests库高级用法2
人邮图书爬取案例3Requests库高级用法1、会话设置2、文件上传3、SSL证书验证4、代理设置Requests库高级用法1、会话设置在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(Session对象)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的Session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的Session中取出该用户的数据,为用户服务。requests库的session对象可以方便实现维护一个会话,而且session对象可自动处理Cookies问题。session对象常用的方法如下:方法描述cookies()获取cookies信息post()POST方式请求get()GET方式请求headers()获取请求头信息head(url,kwargs)发送一个head请求............Requests库高级用法importrequestslogin_url="/"data={"username":"usernmae","password":"********",}#使用实例化requests.sessionsession=requests.session()#使用对象session记录登录后的cookie值session.post(url=login_url,data=data)#使用对象session记录的cookie值进行不用密码登录#下面的url网址是依据自己的账号、密码登录进去的urlurl="/*************"response=session.get(url=login_url)print(response.text)使用session实现维护一个会话,具体代码如下:Requests库高级用法2、文件上传requests可以模拟提交一些数据。若网站需要上传文件,也可以用它来实现,下面是一个实例:data.txt文件的内容是:具体代码如下:运行程序,结果如下:/importrequestsfiles={'file':open('.../data.txt','rb')}r=requests.post('/post',files=files)print(r.text)上面的网站会返回响应,里面包含了files字段和form字段,上传的文件会作为files字段来标识。Requests库高级用法3、SSL证书验证当发送HTTP请求的时候,它会检查SSL证书,requests提供了证书验证的功能。requests库可以使用verify参数控制是否检查此证书;如果不加verify参数的话,默认是True,会自动验证。SSL证书验证的示例如下:正常访问该网站会发出:指定证书的警告,此处通过verify参数的设置忽略SSL证书验证。importloggingimportrequestslogging.captureWarnings(True)response=requests.get('',verify=False)print(response.status_code)Requests库高级用法4、代理设置对于一些网站,大规模爬取或大规模频繁请求时,网站可能会出现以下情况:弹出验证码;跳到登录认证页面;直接封禁客户端的IP,一段时间内无法访问;通过代理设置可以解决上述问题,代理服务器(ProxyServer)的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站,是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记。Requests库高级用法4、代理设置requests库可以使用proxies参数设置代理,具体代码如下:通过代理设置,可以保证正常访问网站,具体运行结果如下:importrequestsproxies={'http':':9743','http':':9743'}response=requests.get('/',proxies=proxies)print(response.status_code)2Requests库高级用法静态网页数据采集----XpathXpath的基本用法1人邮图书爬取案例3对于网页的节点来说,可以定义id、class或其他属性,而且节点之间还有层次关系,在网页中可以通过XPath或css选择器来定位一个或多个节点。在页面解析时,利用XPath或css选择器来提取某个节点,然后再调用相应方法获取正文内容或者属性。Python提供了多种解析库,常用的解析库如下:XpathBeautifulpyqueryXpath的基本用法1、Xpath简介XPath即为XML路径语言(XMLPathLanguage),它是一种用来确定XML文档中某部分位置的语言。XPath被开发者用来当作小型查询语言,基于XML的树状结构,用于定位元素节点、属性节点、文本节点,提供在数据结构树中找寻节点的能力。lxml库是一种执行效率高并且简单易学的第三方网页解析库,是本书推荐读者必须要掌握的网页解析库。lxml库不是Python标准库,需要自行安装。可以在命令行下使用pip命令安装lxml库。ananconda默认会安装lxmlpipinstalllxmlXpath的基本用法1、Xpath简介XPath,全称XMLPathLanguage,是一门在XML文档中查找信息的语言。XPath可用来在XML/HTML中对元素和属性进行遍历。XPath使用路径表达式在XML文档中进行导航;XPath包含一个标准函数库;XPath是XSLT中的主要元素;XPath是一个W3C标准。XPath使用路径表达式来选取XML文档中的节点或节点集。节点是通过沿着路径(path)或者步(steps)来选取的。Xpath的基本用法2、
Xpath常用规则选取节点XPath使用路径表达式在XML文档中选取节点,节点是通过沿着路径或者step来选取的。常用路径的表达式如下表:Xpath的基本用法表达式描述nodename选取此节点的所有子节点。/从根节点选取。//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。.选取当前节点。..选取当前节点的父节点。@选取属性。2、
Xpath常用规则选取节点Xpath的基本用法<?xmlversion="1.0"encoding="ISO-8859-1"?><bookstore><book><titlelang="en">HarryPotter</title><author>JK.Rowling</author><year>2005</year><price>33</price></book></bookstore>路径表达式描述Bookstore选取bookstore元素的所有子节点。/bookstore选取根元素bookstore。bookstore/book选取属于bookstore的子元素的所有book元素。//book选取所有book子元素,而不管它们在文档中的位置。bookstore//book选择属于bookstore元素的后代的所有book元素,而不管它们位于bookstore之下的什么位置。//@lang选取名为lang的所有属性。bookstore/bookstorebookstore/book//bookbookstore//book//@lang2、
Xpath常用规则谓语:谓语用来查找某个特定的节点或者包含某个指定的值的节点,谓语被嵌在方括号中。在下面的表格中,列出了带有谓语的一些路径表达式实例:Xpath的基本用法路径表达式描述/bookstore/book[1]选取属于bookstore子元素的第一个book元素。/bookstore/book[last()]选取属于bookstore子元素的最后一个book元素。/bookstore/book[position()<3]选取最前面的两个属于bookstore元素的子元素的book元素。//title[@lang]选取所有拥有名为lang的属性的title元素。//title[@lang='eng']选取所有title元素,且这些元素拥有值为eng的lang属性。/bookstore/book[price>35.00]选取bookstore元素的所有book元素,且其中的price元素的值须大于35.00。/bookstore/book[price>35.00]//title选取bookstore元素中的book元素的所有title元素,且其中的price元素的值须大于35.00。2、
Xpath常用规则XPath通配符可用来选取未知的XML元素:在下面的表格中,列出了一些路径表达式实例:Xpath的基本用法通配符描述*匹配任何元素节点。@*匹配任何属性节点。node()匹配任何类型的节点。路径表达式描述/bookstore/*选取bookstore元素的所有子元素。//*选取文档中的所有元素。//title[@*]选取所有带有属性的title元素。2、
Xpath常用规则通过在路径表达式中使用"|"运算符,可以选取若干个路径。在下面的表格中,列出了一些路径表达式实例:Xpath的基本用法路径表达式描述//book/title|//book/price选取book元素的所有title和price元素。//title|//price选取文档中的所有title和price元素。/bookstore/book/title|//price选取属于bookstore元素的book元素的所有title元素,以及文档中所有的price元素。3.etree模块通过Xpath解析DOM树的时候要使用lxml库的etree模块,etree模块可方便地从Html源码中获得目标内容。etree模块常用的方法如下表所示:Xpath的基本用法方法描述HTML()方法用来解析字符串格式的HTML文档对象,将传进去的字符串转变成_Element对象。parse()方法按照文档结构解析本地文件。tostring()方法用来将_Element对象转换成字符串。HTMLParser()方法可以解析不完整的HTML文档对象。3.etree模块Xpath的基本用法fromlxmlimportetreetext='''<div>
<ul>
<liclass="item-0"><ahref="link1.html">firstitem</a></li>
<liclass="item-1"><ahref="link2.html">seconditem</a></li>
<liclass="item-inactive"><ahref="link3.html">thirditem</a></li>
<liclass="item-1"><ahref="link4.html">fourthitem</a></li>
<liclass="item-0"><ahref="link5.html">fifthitem</a>
</ul>
</div>'''html=etree.HTML(text)result=etree.tostring(html)print(result.decode('utf-8'))代码逻辑流程如下:(1)导入lxml模块的etree模块;(2)声明HTML,调用HTML类进行初始化,构造XPath解析对象;(3)调用tostring()方法输出修改后的HTML代码,结果是bytes类型。运行程序,具体结果如下:可以看到:li节点标签被补全,并且还自动添加了body、html节点。3.etree模块etree.parse():按照文档结构解析本地文件。获取li节点所有内容,具体代码如下:Xpath的基本用法fromlxmlimportetreehtml=etree.parse('F:/test.html',etree.HTMLParser())result=html.xpath('//li')print('result:',result)print('result[0]',result[0])Xpath的基本用法3.etree模块#初始化html结构,以下方法二选一doc=etree.formstring(htmlstr)doc=etree.HTML(htmlstr)etree.fromstring和etree.HTML使用上的主要区别在于根节点的选择。etree.HTML认为根节点为<HTML>标签。如果以“/”开头代表从<HTML>标签开始进行查找,并且如果输入的html文本不完整会自动补全。etree.formstring认定当前输入参数的最外层节点为根节点,如果输入参数为不完整的html,也不会自动补全。3.etree模块XPath规则中可通过//
或/查询元素的子节点或子孙节点。XPath规则中可通过..
查询元素的父节点XPath规则中可通过@
进行属性过滤。XPath规则中可通过text()方法获取节点中的文本。XPath规则中可通过@符号获取属性内容。XPath规则中可通过contains()函数配置多值属性。Xpath的基本用法result=html.xpath('//li/a')#子节点或子孙节点。result=html.xpath('//a[@href="link4.html"]/../@class')#父节点result=html.xpath('//li[@class="item-1"]')#属性过滤result=html.xpath('//li[@class="item-1"]/a/text()')#文本result=html.xpath('//li/a/@href')#属性内容result=html.xpath(‘//div[contains(@id,“ID”)]/a/text()‘)#多值属性3Requests库高级用法静态网页数据采集--XPATH人邮图书爬取案例1
Xpath的基本用法2人邮图书爬取案例任务:爬取人民邮电出版社图书列表爬取信息包括书名、作者、价格、详情链接。爬取后的数据保存在CSV文件中。图书页面网址:/book人邮图书爬取案例任务分析:为了逻辑更加清晰,使用函数分别封装下载器、解析器和数据保存功能。通过“爬取网页的通用代码框架”获取网页内容通过xpath解析网页内容,获取数据通过csv.wirter完成数据的保存任务分析:1、通过“爬取网页的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年工程税收与结算合同
- 2024年度电竞游戏开发与发行合同
- 2024年丙方法律咨询与代理合同
- 2024年应急出口指示牌制作安装合同
- 2024年城市道路泥水施工合同
- 2024年建筑工程所需材料采购协议
- 2024年度无人机制造与销售合同
- 2024园林绿化工程绿化带规划与设计合同
- 2024腾讯朋友圈广告合同
- 2024年度医院医疗设备采购与安装合同
- 口腔常见疾病的诊治
- MOOC 人像摄影-中国传媒大学 中国大学慕课答案
- MOOC 计算机组成原理-电子科技大学 中国大学慕课答案
- 2024年江苏无锡市江阴市江南水务股份有限公司招聘笔试参考题库含答案解析
- 中学教材、教辅征订管理制度
- (高清版)DZT 0213-2002 冶金、化工石灰岩及白云岩、水泥原料矿产地质勘查规范
- 消防安全评估消防安全评估方案
- 工程造价专业《工程经济》课程标准
- ZARA服装市场营销策略研究分析 市场营销专业
- 设备维保的市场化运作与服务模式创新
- 幼儿园科普知识宣传
评论
0/150
提交评论