首页 > 其他 > 详细

restests库的应用

时间:2020-08-27 20:37:55      阅读:60      评论:0      收藏:0      [点我收藏+]

resrest库是 python实现的简单的应用的库,可以做爬虫使用

1、例程

import requests
response = requests.get("https://baidu.com")
print(response)                # <Response [200]>
print(type(response))          # <class ‘requests.models.Response‘>
print(response.status_code)    # 200

使用 resquests.get()发送get()请求,得到一个类的对象 response

2、各种请求方式

# 发送一个 HTTP POST 请求:
response = requests.post("http://httpbin.org/post",data = {key:value})
response = requests.delete(http://httpbin.org/delete)    # 发送一个 HTTP delete 请求:
response = requests.head(http://httpbin.org/get)         # 发送一个 HTTP head 请求:
response = requests.options(http://httpbin.org/get)      # 发送一个 HTTP options 请求:

3、基本 GET请求

import requests
response = requests.get("http://httpbin.org/get?name=germey&age=22")
print(response.text)
import requests

data = {
    name: germey,
    age: 22
}
response = requests.get("http://httpbin.org/get", params=data)
print(response.text)

 两种方法都可以,添加 data 或者写在url上

resquesets.get(url)  得到的结果 response.text 为文本文件

技术分享图片

3.1、获取二进制数据,可以爬取图片、视频等 

import requests

response = requests.get("https://github.com/favicon.ico")
with open(favicon.ico, wb) as f:
    f.write(response.content)
    f.close()

将爬取到的二进制数据,保存在 favicon.ico文件中,resquests.content 为获取到的内容

3.2、添加 headers标签

和 urllib.urlopen一样,可以添加一个 headers参数

import requests
headers = {
    User-Agent :Mozilla/5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 70.0.3538.102Safari / 537.36Edge / 18.18362
}
response = requests.get("https://www.zhihu.com/explore", headers=headers)
print(response.text)

 

4、response的属性

import requests
response = requests.get(http://www.baidu.com)
print(type(response.status_code), response.status_code)
print(type(response.headers), response.headers)
print(type(response.cookies), response.cookies)
print(type(response.url), response.url)
print(type(response.history), response.history)

5、上传文件

import requests
files = {file: open(favicon.ico, rb)}
response = requests.post("http://httpbin.org/post", files=files)
print(response.text)

上传图片到 url网址上,然后接收端下载文件即可,用的是 post请求

6、获取cookie

import requests
response = requests.get("https://www.baidu.com")
print(response.cookies)
for key, value in response.cookies.items():
    print(key + = + value)

cookie是一个登录状态,下载之后,利用python访问的时候可以添加 cookie登录,不然有些网址会提示没有权限

模拟登录

import requests
s = requests.Session()
s.get(http://httpbin.org/cookies/set/number/123456789)
response = s.get(http://httpbin.org/cookies)
print(response.text)

建立一个 Session对象,保证添加 cookies的浏览器和再次访问的浏览器是同一个浏览器

就是说,如果是普通的方法,可能是模拟一个浏览器上添加了 cookie,再模拟另一个浏览器读取,的不要想要的验证效果

get( url/ cookie/set/xxx) 是添加 cookie 的方法  然后再 s.get 读取结果为 response

 

7、证书验证

一些网站没有官方的证书认证,浏览器访问会提示是否继续访问,但是python爬虫不会提示,访问会直接报错,可以添加参数 verify =False,屏蔽证书

import requests
from requests.packages import urllib3
urllib3.disable_warnings()
response = requests.get(https://www.12306.cn, verify=False)
print(response.status_code)

在 requests.get()方法中加入 verify =False即可,不过这样虽然可以运行,但是会有 warning 提示

也可以设置 uillib3.disable_warning() 关闭 warning提示

 

8、认证设置

 

比如说访问一些 htp网址或者其他需要账号密码登录,就需要直接输入

import requests
r = requests.get(http://120.27.34.24:9001, auth=(user, 123))
print(r.status_code)

 

9、异常处理

import requests
from requests.exceptions import ReadTimeout, ConnectionError, RequestException
try:
    response = requests.get("http://httpbin.org/get", timeout = 0.5)
    print(response.status_code)
except ReadTimeout:
    print(Timeout)
except ConnectionError:
    print(Connection error)
except RequestException:
    print(Error)

根据报错信息来判断是什么报错,然后添加 try expect 来处理异常

 

restests库的应用

原文:https://www.cnblogs.com/yxlll/p/13571516.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!