爬虫知识总结,对爬虫的看法

  爬虫知识总结,对爬虫的看法

  中国最高学府排行榜 importrequestsfroms 4 import beautiful Soupdefget _ html _ text(URL):try 3360 HD={ auth-agege r . encoding=r . obvious _ encoding;R. text除:print(连接错误))return) def fill _ univ _ list)r):soup=beautiful soup(r, html。PAA age ls=[]for iinrange(10):ls _ TD . append)ls _ tr[I]。find _ all)TD’)for iteminls _ TD 33330 def print _ univ _ list(ls):tplt={0:^10}(t)1:{3}^10})t)2:^10);Print(tplt.format)、“排名”、“学校名称”、“分数”、CHR(12288))for iinrange)10):)tplt . format)[ls[I print _ univ _ list(ls;URL= 2016.html,http://www.zuihaodaxue.com/zuihaodaxuepaiming主要(URL)抓取和网页分析定向网页数据

  请求库:自动访问HTML页面并自动提交web请求。

  Robots.txt:网络爬虫排除标准

  美汤:解析html界面

  Re:正则表达式库,提取页面的重要信息。

  Scrapy*:网络爬虫原理及专业爬虫框架介绍。

  使用请求库

  Requests.request(#)创建一个请求以支持以下方法的基本方法

  获取页面的主要方法对应于HTTP的get。

  Requests.head(获取# html页面头信息的方法对应HTTP

  Requests.post(#)将post请求发送到http post对应的HTML页面。

  Requests.put(#向对应于http put的HTML页面提交put请求

  Requests.patch(#)向HTML页面提交对应于HTTP路径的本地修改请求。

  Requests.delete(#)向HTML页面提交HTTP删除对应的删除请求。

  requests.request(方法,url,**kwargs)).

  方法:请求模式GET,HEAD,POST,PUT,PATCH,delete,OPTIONS。

  **kwargs:控制访问的参数作为参数附加到url。

  Params:作为字典或字节列或参数添加到url。

  importrequestskv={ key 1 : value 1 , key 2 : value 2 } r=requests . request( get , http://python118

  importrequestskv={ key 1 : value 1 , key 2 : value 2 } r=requests . request( post , http://python

  标题:字典,http自定义标题#可以模拟任何浏览器

  importrequestshd={ user-agent : chrome/10 } r=requests . request( post , http://python123.io/ws )

  Auth: tuple类型,支持HTTP认证。

  文件:字典类型,传输文件

  importrequestsfs={ file :open data . xls , Rb}r=requests.request , http://python123.iithon

  地方

  R=requests.request (get , http://Python123.io/ws,超时=30)proxy:字典类型,设置访问代理服务器,可以增加登录认证。

  导入请求PXS={ http : http://user:pass @ 10 . 10 . 10 . 1:1234 , https : 335810 . 10 . 1:4321 } r=requests . request( get )

  Stream: True/false,默认值为True,切换为立即下载内容。

  Verify: True/False,默认值为True,SSL证书交换机已经过身份验证。

  证书:本地SSL证书路径

  R=requests.get(url)#构造一个向服务器请求资源的请求对象,返回一个包含服务器资源的响应对象,最重要的。返回爬虫需要的东西。

  Requests.get (URL,params,* * kwargs) # URL:要获取的页面的链接;params:URL、字典或字节流样式的额外参数,可选。* * kwargs: 12个控制访问参数

  导入请求

  r=requests . get(" http://www . Baidu . com ")

  Print(r.status_code)#返回状态代码。如果是200,就成功了;如果不是200,则失败

  R.header #返回get请求接口的头信息,字典类型。

  响应对象的属性:

  R.status _ code # HTTP请求的返回状态,200表示连接成功,404表示失败。

  R.text #对应内容字符串的http信息,即url对应的页面内容

  R.encoding #从http头猜测的响应内容的编码方法

  R.apparent_encoding # response与内容分离的内容编码方法(备选编码方法)

  http响应内容的二进制形式

  请求的异常处理

  请求。ConnectionError #网络连接错误异常,如DNS查询失败、连接拒绝等。

  请求。HTTPError #HTTP错误异常

  缺少请求时出现异常。URL必需#URL

  请求。TooManyRedirects #超过了最大重定向数,导致重定向异常。

  请求。连接到远程服务时出现ConnectionTimeout #异常。

  请求。超时#请求URL超时,导致超时异常

  R.raise_for_status() #如果不是200,生成一个异常请求。HTTPErrorr

  提交的数据代码导入请求有效负载={key1: value1 , key 2 : value 2 } r=requests . post( 3358 HTTP bin . org/post ,data=payload) print (r.text) HTTP协议:超文本传输协议,请求-响应,无状态

  http://主机[:端口][路径]

  主机:合法的互联网主机域名或IP地址

  端口:端口号,默认端口号为80。

  Path:所请求资源的路径。

  方法:

  GET:请求获取URL位置的资源。

  HEAD:请求URL位置资源的响应消息报告,即头信息。

  POST:请求在URL位置向资源追加新数据。

  PUT:请求在URL位置存储资源,覆盖原始URL位置的资源。

  PATCH:请求在本地更新URL位置的资源,即改变该位置资源的某些内容。

  删除:请求删除存储在URL位置的资源

  小规模,请求库抓取网页对抓取速度不敏感。

  中型和爬行类网站使用Scrapy库,对爬行速度比较敏感。

  大规模,爬全网,建立搜索引擎,定制开发,爬全网。

  对网络爬虫的限制:源审查:判断用户代理施加的限制,并进行公告。

  获取url内容

  导入请求:HD={ user-agent : chrome/10 } URL= 3359 www . Baidu . com r=requests . get(URL,headers=HD)r . raise _ for _ status()print(r . text[:1000])

  导入请求stry:IP= 112 . 38 . 203 . 59 HD={ user-agent : Chrome/10 } URL= https://www . IP 138 . com/iplookup . ASP kv={ IP :IP, action:2} r=requests.get(url,Ers=HD,params=kv)r . raise _ for _ status()r . encoding=r . apparent _ encoding print(r . URL n ,r.text [:1000]

  从bs4导入请求导入美汤=requests . get(URL)demo=r . text soup=美汤(demo, html.parse )美汤库解析器

  bs4的HTML解析器:BeautifulSoup(mk, html.parse ),前提是安装了bs4库。

  lxml的HTML解析器:BeautifulSoup(mk, lxml ),假设pip安装lxml

  lxml的xml解析器:BeautifulSoup(mk, XML),前提是pip安装lxml

  html5lib的解析器:BeautifulSoup(mk, html5lib ),前提是pip安装html5lib

  美声的基本元素

  标签:标签/

  名称:标签的名称。

  ……

  ,p是标签的名称。名字

  属性:标签的属性,以字典形式组织,格式:属性列表

  Navigablestring:标记内的非属性字符串。

  注释:标签中字符串的注释部分,一种特殊类型的注释。

  汤后可以点的东西. a: parent的上标签,name,string里面的string,attrs属性。

  !注释部分

  标签树的向下遍历。子节点列表的内容,所有子节点都存储在列表中。

  的迭代类型。子节点,类似于。内容,用于遍历子节点。

  的后代节点的迭代类型。后代,包括所有后代节点,用于循环遍历。

  标签树的向上遍历

  的父标签。亲代交点

  的祖先标签的迭代类型。parents节点,用于循环访问祖先节点。

  标签树的并行遍历。HTML文本顺序中的下一个并行节点标签。以HTML文本顺序排列的前一个并行节点标签。next_siblings迭代类型,以HTML文本顺序返回所有后续的并行节点标签。previous _siblings迭代类型,以HTML文本顺序返回所有以前的并行节点标签。

  迭代类型智能在类型中为遍历。

  print(soup . pretify())在每个标签后面加一个 n ,这样看起来更好看。它还可以处理单个标签的三种信息标识符:XML、JSON和YAML。

  XML格式:

  JSON的标识形式:键值对, key: value , key: [value1 , value2], key1: {key2: value}

  YAML身份证明表:

  关键:价值

  关键字:#注释

  -值1

  -价值2

  关键:

  子项:子值

  XML:互联网上的信息交换和传输

  JSON:移动应用云和节点之间的信息交流,不带注释

  YAML:各种系统的配置文件,带有易读的注释。

  信息抽取的一般方法

  方法:全面分析信息的标记形式,提取关键信息。

  XML JSON YAML

  需要标签解析器,比bs4的标签树遍历更准确,但速度较慢。

  方法:忽略标记形式,直接搜索关键信息。

  只是搜索信息的文本功能,提取速度快,但是准确性不好。

  汤的作用

  Soup.find _ all (a) #在Soup中查找所有A标签

  Soup.find _ all ([a , b]) #查找Soup中的所有A,B标签

  Soup.find_all(True)#返回Soup中的所有标签

  Soup.find _ all (re.pile (b)) #显示所有以b开头的标签,re是正则表达式库。

  Soup.find _ all (p , course) #显示所有带course的p标签

  Soup.find_all(id=link1)#返回属性中id=link1 的标记元素

  soup . find _ all(id=re . pile( link ))#返回id=以link开头的标签

  soup . Find _ all(string= basic python )#查找basic python字符串

  S soup.find _ all (string=re.pile(基础python)) #查找python出现的字符串。

  Soup.a.get(href)#) #返回标签a中的所有href内容。find.all (name,attrs,recursive,string,* * kwargs),表示一个节点。

  返回存储搜索结果的列表类型。

  名称:标签名称的检索字符串。

  Attrs:标签属性值的检索字符串,可以标记为属性检索。

  递归:是否检索所有后代;默认值为True。

  字符串:找到一个字符串。

  (…)相当于。查找全部(…)

  Soup(…)相当于soup.find_all(…)

  展开法。find()#搜索并只返回一个结果,字符串类型与find_all()参数相同。findparents()#在祖先节点中搜索并返回列表。findparent()#返回父节点中的结果,字符串类型。find_nextsiblings()#在后续并行节点中搜索并返回列表。find_nextsibling()#在后续节点中搜索并返回一个结果,string。find_previous_siblings()#在前面的并行节点中搜索并返回列表。find_nextsibling()#在前面的节点中搜索并返回一个结果,即一个字符串

爬虫知识总结,对爬虫的看法