一、python requests爬虫[基础、上传文件、会话维持、代理设置]
2023-12-13 21:44:58
一、requests
1. 发送
解释:向服务器发送请求
1.1 请求页面方式
requests.get('www.baidu.com')
requests.post('www.baidu.com')
1.2请求参数
1.2.1 get
params = {
"id":16,
"name":"jack"
}
requests.get('www.baidu.com',params=params)
# 默认发送字符串
1.2.2 post
params = {
"id":16,
"name":"jack"
}
requests.post('www.baidu.com',data=params) #这里要写data
# 默认发送字符串
1.2.3 json格式
解释:发送json数据
params = {
"id":16,
"name":"jack"
}
requests.post('www.baidu.com',json=params) #这里要写json
# 发送的json数据
1.3 请求表头
headers={
"User-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Mobile Safari/537.36 Edg/103.0.1264.71"
}
requests.get('www.baidu.com',headers=headers)
2. 接收
解释:接受服务器返回的内容
前要:response = requests.get('www.baidu.com')
2.1 内容
- 字符串数据:
response.text
- json数据:
response.json()
- 二进制数据:
response.content
2.2 属性
- 状态码:
response.status_code
- 返回头:
response.headers
- cookie:
response.cookies #查看数据:类似字典遍历
- 请求历史:
response.history
3.高级用法
3.1 上传文件
参数:
- myfile:开发者自定义的名字,需要自己用开发者工具查看
- 字典:
i.jpg
(自定义的文件名字);open('4.jpg','rb')
(选择文件“rb”中b需要写表示二进制读取);'image/jpeg'
(文件类型,服务器可能会验证名字)
import requests
url = "http://127.0.0.1:8000/a/go"
files = {
'myfile': ('i.jpg', open('4.jpg', 'rb'), "image/jpeg")
}
response = requests.post(url, files=files)
3.2 会话维持
解释:访问网站后保存下来cookie用于其它操作
参数:
session = requests.Session() #关键操作
import requests
urla = "https://127.0.0.1"
urlb = "https://127.0.0.1/cookie"
data_a={"create_time": 1659171719, "content": "规范化风格恢复鬼画符"}
data_b={"email":"2@qq.com","pwd":"1234","remember":True}
session = requests.Session()
response = session.post(urlb, verify=False, json=data_b)
print(response.cookies,response.text)
response_b = session.post(urla, verify=False, json=data_a)
print(response_b.text)
3.3 代理设置(Socks代理)
注意:端口以及对应方式一定写对;如果本地代理一定要开全局模式
3.3.1 http代理
import requests
urla = "https://127.0.0.1"
urlb = "https://127.0.0.1/cookie"
dataa={"create_time": 1659171800, "content": "规范化风"}
datab={"email":"2@qq.com","pwd":"12345678a","remember":True}
session = requests.Session()
proxies={
"http":"http://127.0.0.1:1080",
"https":"https://127.0.0.1:1080"
}
response = session.post(urlb, verify=False, json=datab,proxies=proxies)
print(response.cookies,response.text)
responseb = session.post(urla, verify=False, json=dataa,proxies=proxies)
print(responseb.text)
3.3.2 socks5代理
安装:pip install requests[socks]
proxies={
"http":"socks5://127.0.0.1:1080",
"https":"socks5://127.0.0.1:1080"
}
response = session.post(urlb, verify=False, json=datab,proxies=proxies)
文章来源:https://blog.csdn.net/weixin_46765649/article/details/126042190
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!