requests库简介:
requests是使用Apache2 licensed 许可证的HTTP库。
Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。
在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作。
使用方法:
Step1:导入
import requests
Step2:确定访问地址
r = requests.get('www.baidu.com') # 最基本的不带参数的get请求
Step3:访问,并解码
test = requests.get("https://www.7tianbo.com/")
test.encoding = 'utf-8'
res = test.text
仿E语言的网页_访问()函数
def 网页_访问_对象(请求地址, 请求方式=0, 提交的内容='', 提交的COOKIE='', 提交的协议头={}, 允许重定向=True, 上传文件=None, 代理地址=None, 最长等待=30, 编码方式=None,
证书验证=False):
'请求方式:0是GET 1是POST.提交的内容跟提交的Cookie可以是字符串也可以是字典。返回的Cookie是文本型,返回的协议头是字典,证书验证:默认为False,需要引用证书时传入证书路径,上传文件传入文件路径'
网页 = 网页类型()
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
http = requests.session()
if type(上传文件) == str:
try:
files = {'file': open(上传文件, 'rb')}
except:
上传文件 = None
else:
上传文件 = None
if 提交的协议头 == {} or 提交的协议头 == '':
提交的协议头 = {"Accept": "*/*",
"Referer": 请求地址,
"Accept-Language": "zh-cn",
"Content-Type": "application/x-www-form-urlencoded",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36"}
if type(提交的协议头) == str:
if len(提交的协议头) > 3:
协议头数组 = 文本_分割文本(提交的协议头, '\n')
提交的协议头 = {}
for x in 协议头数组:
键 = 文本_删首尾指定字符(文本_取文本左边(x, ':'))
值 = 文本_删首尾指定字符(文本_取文本右边(x, ':'))
if 键 != '' and 值 != '':
提交的协议头[键] = 值
else:
提交的协议头 = {}
if 请求方式 < 0 or 请求方式 > 1:
请求方式 = 0
if 最长等待 < 1 or 最长等待 > 60:
最长等待 = 30
if 代理地址 != None:
代理地址 = {"http": "http://" + 代理地址, "https": "https://" + 代理地址}
if 提交的COOKIE != '' and type(提交的COOKIE) == str:
if 文本_寻找文本(提交的COOKIE, "=") == -1:
提交的COOKIE = {}
elif 文本_寻找文本(提交的COOKIE, ";") == -1:
键 = 文本_删首尾指定字符(文本_取文本左边(提交的COOKIE, '='))
值 = 文本_删首尾指定字符(文本_取文本右边(提交的COOKIE, '='))
if 键 != '' and 值 != '':
提交的COOKIE = {键: 值}
else:
COOKIE数组 = 文本_分割文本(提交的COOKIE, ';')
提交的COOKIE = {}
for x in COOKIE数组:
键 = 文本_删首尾指定字符(文本_取文本左边(x, '='))
值 = 文本_删首尾指定字符(文本_取文本右边(x, '='))
if 键 != '' and 值 != '':
提交的COOKIE[键] = 值
try:
if 请求方式 == 0:
网页对象 = http.get(文本_删首尾指定字符(请求地址), params=提交的内容, cookies=提交的COOKIE, headers=提交的协议头, allow_redirects=允许重定向,
files=上传文件,
proxies=代理地址, timeout=最长等待, verify=证书验证)
else:
网页对象 = http.post(文本_删首尾指定字符(请求地址), data=提交的内容, cookies=提交的COOKIE, headers=提交的协议头, allow_redirects=允许重定向,
files=上传文件,
proxies=代理地址, timeout=最长等待, verify=证书验证)
if 编码方式 != None:
网页对象.encoding = 编码方式
网页.源码 = 网页对象.text
返回的COOKIE = ''
返回的COOKIE字典 = dict(网页对象.cookies)
for x in 返回的COOKIE字典:
返回的COOKIE = 返回的COOKIE + x + '=' + 返回的COOKIE字典[x] + '; '
网页.Cookie = 返回的COOKIE
网页.状态码 = 网页对象.status_code
网页.协议头 = 网页对象.headers
except Exception as error:
print('网页_访问_对象:运行出错|' + str(error))
return 网页
打包中的问题:
由于requests版本的问题,少部分版本可能存在打包后requests指令无法执行,需要用到自以下代码后打包:
import queue
Comments | NOTHING