Requests库
七种方法
- requests.request():构造一个请求,支撑以下各方法的基础方法
- requests.get():获取HTML网页的主要方法,对应于HTTP的GET
- requests.head():获取网页头信息
- requests.post()
- requests.put()
- requests.patch()
- requests.delete()
以上6个方法都是调用request方法来实现的
r=requests.get(url)
- 构造一个向服务器请求资源的Request对象
- 返回一个包含服务器资源的Response对象
requests.get(url,params=None,**kwargs)
- url
- params:url中的额外参数,字典或字节流格式,可选
- **kwargs:12各控制访问的参数
Response对象的属性
-
r.status_code:HTTP请求的返回状态,200代表成功,404代表失败
-
r.txt:HTTP响应内容的字符串形式
-
r.encoding:从header中猜测的响应内容编码方式
r.encoding='utf-8'
如果header中不存在chartset,则认为编码为ISO-8859-1
-
r.apparent_encoding:从内容中分析出的响应内容编码方式
这个比encoding更加准确
-
r.content:HTTP响应内容的二进制形式
六种异常
- requests.ConnectionError
- requests.HTTPError
- requests.URLRequired
- requests.TooManyRedirects
- requests.ConnectionTimeout
- requests.Timeout
r.raise_for_status():如果不是200,产生异常requests.HTTPError
爬取网页通用代码框架
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="https://itsapp.bjut.edu.cn/uc/wap/login?redirect=https%3A%2F%2Fitsapp.bjut.edu.cn%2Fncov%2Fwap%2Fdefault%2Findex"
print(getHTMLText(url))
网友评论