request的其他用法
上传文件
url = 'https://httpbin.org/post'
files = {'file': open('image.png', 'rb')}
response = requests.post(url, files=files)
print(response.text)
Web客户端验证
import requests
auth=('test', '123456')
response = requests.get(
'http://192.168.199.107',
auth = auth
)
print (response.text)
在这里插入代码片
代理设置
import requests
proxies = {
"http": "http://11.44.156.126:4532",
"https": "http://11.134.156.126:4532",
}
'''
proxy = {
"http": "name:password@11.134.156.126:4532"
}
'''
response = requests.get(
"http://www.baidu.com",
proxies = proxies
)
print(response.text)
Cookies
import requests
response = requests.get("https://www.douban.com/")
cookiejar = response.cookies
cookiedict = requests.utils.dict_from_cookiejar(
cookiejar
)
print (cookiejar)
print (cookiedict)
Session
import requests
ssion = requests.session()
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
}
data = {
"email":"18518753265",
"password":"ljh123456"
}
ssion.post(
"http://www.renren.com/PLogin.do",
data = data
)
response = ssion.get(
"http://www.renren.com/965722397/profile"
)
print (response.text)
用request模拟登录
登录遇到验证码的时候,可以把它拿出来,就不用去网页上看了
import requests
from lxml import etree
sess = requests.session()
url = 'https://fly.layui.com/user/login/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'referer': 'https://fly.layui.com/user/login/',
'cookie': 'fly-layui=s%3Am8VoRAF5HTeLGmPchcNTM3Mtl8PyfSAf.YUmMm7e8RBlmRJNTjXWt0iI%2Fmp5XheYw4XgjOlo8JgM; Hm_lvt_d214947968792b839fd669a4decaaffc=1592814692; Hm_lpvt_d214947968792b839fd669a4decaaffc=1592898217'
}
response = sess.get(url=url,headers=headers)
html = etree.HTML(response.text)
img = html.xpath('//div[@class="layui-form-mid"]/img/@src')[0]
print(img)
response = sess.get(url='https://fly.layui.com'+img,headers=headers)
with open('code.html','wb') as f:
f.write(response.content)
code = input('请输入验证码')
secret = html.xpath('//div[@class="layui-form-item"]/input/@value')
form_data = {
'loginName': '2079380582@qq.com',
'pass': 'l200011280028..',
'imagecode': code,
'secret': secret
}
response = sess.post(url=url,data=form_data,headers=headers)
print(response.json())
colection_utl = 'https://fly.layui.com/user/post/#collection'
response = sess.get(url=colection_utl,headers=headers)
print(response.text)
跳过SSL验证
import requests
response = requests.get("https://www.12306.cn/mormhweb/", verify = False)
print (response.text)