阳仔学爬虫(1) Requests 的get方法和两个对象

Requests库的7个主要方法

requests. request()
构造一个请求,支撑以下各方法的基础方法

requests. get()
获取HTML网页的主要方法,对应于HTTP的GET

requests. head()
获取HTML网页头信息的方法,对应于HTTP的HEAD

requests. post()
向HTML网页提交POST请求的方法,对应于HTTP的POST

requests. put()
向HTML网页提交PUT请求的方法,对应于HTTP的PUT

requests.patch()
向HTML网页提交局部修改请求,对应于HTTP的PATCH

requests.delete()
向HTML页面提交删除请求,对应于HTTP的DELETE

------------------------------------------------------------------------------------------------

Requests 库的 get() 方法:

获取一个网页最简单的方法: r = requests.get(url)
是构造一个向服务器请求资源的Request对象 ,返回一个包含服务器资源的Response对象。

完整的使用方法: requests.get(url,params=None,**kwargs)
包含三个参数:
url: 拟获取页面的url链接。
params: url中的额外参数,字典或字节流动格式,可选。
**kwargs: 12个控制访问的参数。

Requests库的两个重要对象( Response对象,Request对象)

Response对象: 包含爬虫返回的内容。
例子:

>>>import requests
>>>r = requests.get("http://www.baidu.com")
>>>print(r.status_code)
200
>>>type(r)
<class'requests.models.Response'>
>>>r.headers
{'Cache-Control':'private, no-cache, no-store, proxy-revalidate,
ection':'Keep-Alive','Transfer-Encoding':'chunked','Server':
Response中最常用的五个属性:
  1. r.status_code : HTTP请求的返回状态,200表示连接成功,404表示失败(也有其他返回值,但只要不是200,都为失败)。
  2. r.text : 响应内容的字符串形式,即url对应的页面内容。
  3. r.encoding : 从HTTP header中猜测的响应内容编码方式。(如果header中不存在charset,则认为编码为ISO-8859-1)
  4. r.apparent_encoding : 从内容中分析出的响应内容编码方式(备选编码方式,实实在在分析内容并找到其中的编码,相对r.encoding来说更加准确)
  5. r.content : HTTP响应内容的二进制形式。
Resquests库支持六种常用的连接异常
  1. requests.ConnectionError : 网络连接错误异常,如DNS查询失败、拒绝连接等。
  2. requests.HTTPError : HTTP错误异常。
  3. requests.URLRequired : URL缺失异常。
  4. requests.TooManyRedirects : 超过最大重定向次数,产生重定向异常。
  5. requests.ConnectTimeout : 连接远程服务器超时异常。(仅指与远程服务器连接的超时异常)
  6. requests.Timeout : 请求URL超时,产生超时异常。(发出URL请求到获得内容的整个超时异常)

例子:

爬取网页的通用代码框架
import requests

def getHTMLText (url):
   	try:
   		r = requests.get(url, timeout=30)
   		r.raise_for_status() #如果状态不是200,则引发HTTPError异常
   		r.encoding = r.apparent_encoding
   		return r.text
   	except:
   		return "产生异常"
   		
if__name__=="__main__":
   	url = "http//www.baidu.com"
   	print(getHTMLText(url))

本文资料来源:中国大学MOOC

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值