


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
python实现⽹络爬⾍代码_技术⼲货—Python实现⽹络爬⾍⽹络爬⾍⼜名“⽹络蜘蛛”,是通过⽹页的链接地址来寻找⽹页,从⽹站某⼀个页⾯开始,读取⽹页的内容,找到在⽹页中的其它链接地址,然后通过这些链接地址寻找下⼀个⽹页,这样⼀直循环下去,直到按照某种策略把互联⽹上所有的⽹页都抓取完为⽌的技术。图⽚来源于⽹络下⾯是使⽤Python实现⽹络爬⾍的⼀些基础知识。⼀、URLURL–URL的格式由三部分组成:第⼀部分是协议(或称为服务⽅式)。第⼆部分是存有该资源的主机IP地址(有时也包括端⼝号)。第三部分是主机资源的具体地址,如⽬录和⽂件名等。⼆、获取资源API1、urllib.request.urlopen()2、fromurllibimportrequesturl=''response=request.urlopen(url)html=response.read()#bytes类型html=html.decode('utf-8')#decode()解码,转换成str类型3、urllib.request.Request使⽤request()来包装请求,再通过urlopen()获取页⾯。headers={"User-Agent":'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/59.0.3071.86Safari/537.36',}req=request.Request(url,headers=headers)response=request.urlopen(req)三、字符编码1、字符编码图⽰2、decode和encodea='你好‘a1=a.encode('utf-8')a2=a.encode('gbk')a1.decode('utf-8')a2.decode('gbk')a1.decode('ascii')#出错
四、异常处理1、URLError,HTTPError2、处理异常的先后,顺序由前到后,范围由⼩到⼤try:response=request.urlopen(url)excepterror.URLErrorase:print(e,url)excepterror.HTTPErrorase:print(e,url)exceptExceptionase:print(e,url)五、⽹页解析1、lxml库1)HTML⽂件,如何⽤lxml解析fromlxmlimportetreehtml=etree.HTML(html_str)html=etree.ElementTree(html)2)利⽤Xpath解析后,查找、定位或获取某个元素2、Xpath1)XPath概念XPath是⼀门在XML⽂档中查找信息的语⾔,XPath⽤于在XML⽂档中通过元素和属性进⾏导航。XPath使⽤路径表达式来选取XML⽂档中的节点或者节点集。这些路径表达式和我们在常规的电脑⽂件系统中看到的表达式⾮常相似。2)Xpath节点i、(⽂档节点)ii、JK.Rowling(元素节点)iii、lang=“en”(属性节点),JK.Rowling"en"(基本值)节点关系:⽗,⼦,同胞,先辈,后代3)Xpath语法4)Xpath⽰例样例xml:HarryPotter29.99
LearningXML39.95使⽤lxml库处理:books=html.xpath("//book")allbook=[]fori,bookinenumerate(books):title=html.xpath('//book[{}]/title/text()'.format(i+1))[0]lang=html.xpath('//book[{}]/title/@lang'.format(i+1))[0]price=float(html.xpath('//book[{}]/price/text()'.format(i+1))[0])onebook=(title,lang,price)allbook.append(onebook)pprint(allbook)六、爬⾍基本流程1、发送请求request到服务器,服务器响应response浏览器2、python3中⾃带urllib.request(处理请求),导包:fromurllibimportrequest3、request.Request(url,headers)⾃定义请求(请求头中要模拟多浏览器,User-Agent【若需登录,则需要提供cookies】)4、发送请求request.urlopen(⾃定义请求req),返回⼀个字符串类型的⽹页内容5、解析⽹页内容(过滤:1.将字符串转成HTML⽂档类型2.将⽂档类型转换成元素节点类型)6、安装⼀个xpath解析模块lxml7、xpath('解析语法')来获取⾃⼰想要的数据8、将数据写⼊csv(表格)⽂件七、爬⾍简单获取⽹页内容的代码#1.将User-Agent放⼊字典中(⽤来模拟浏览器访问服务器资源:不会被封IP地址)header={"User-Agent":"Mozilla/5.0(WindowsNT6.1;WOW64;rv:59.0)Gecko/20100101Firefox/59.0"}#2.获取请求的路径(要去爬哪个地址的⽹页)url="/"#3.通过request模块可以构建⼀个属于⾃⼰的请求对象req=request.Request(url,headers=header)#4.发送请求并接受到服务器的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论