栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基础(二)requests模块

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基础(二)requests模块

requests模块

requests的作用就是发送网络请求,返回响应数据

1基本GET请求(headers参数 和 parmas参数) 1.1最基本的GET请求可以直接用get方法
  • 通过requests向百度首页发送请求,获取百度首页的数据

示例:

import requests 
# 目标url
url = 'https://www.baidu.com' 

# 向目标url发送get请求
response = requests.get(url)			# 方法一
response = requests.request("get", url)	# 方法二

# 打印响应内容
print(response.text)

如果response.text有乱码解决办法:

print(response.content.decode())
1.2发送带header的请求
  • 网站往往都会检测请求头的User-Agent,如果ua不合法,可能会获取不到响应。所以加请求头的目的就是模拟浏览器,欺骗服务器,获取和浏览器一致的内容。当然,有的时候甚至不止需要传User-Agent一个参数,还需要其他的参数像Referer,Cookie等等

  • header的形式:字典

用法
requests.get(url, headers=headers)

import requests 

url = 'https://www.baidu.com' 
headers = {
	"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36"
}
# 在请求头中带上User-Agent,模拟浏览器发送请求
response = requests.get(url, headers=headers) 
print(response.content.decode())
1.3 url 带参数的请求

参数可以直接拼接在URL后面,问号(?)前面是接口的请求地址,多个参数用连接符(&)连接。

方式一:直接发送带参数的url的请求

import requests
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"}
url = 'https://www.baidu.com/s?wd=python'

# url中包含了请求参数,所以此时无需params
response = requests.get(url, headers=headers)
print(response.content)

方式二:利用params参数发送带参数的请求

import requests
headers = {
	"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36"
}
# 最后有没有问号结果都一样
url = 'https://www.baidu.com/s?' 
# 请求参数是一个字典 即wd=python
kw = {'wd': 'python'} 
# 带上请求参数发起请求,获取响应
response = requests.get(url, headers=headers, params=kw) 
print(response.content)

当有多个请求参数时,requests接收的params参数为多个键值对的字典,比如 '?wd=python&a=c'-->{'wd': 'python', 'a': 'c'}

2 发送POST请求

使用POST请求的情况:

  • 登录注册( POST 比 GET 更安全)
  • 需要传输大文本内容的时候( get方法的拼接长度可能很长,但是浏览器有限制,不能超过2048KB,POST 请求对数据长度没有要求)
import requests

# 确定请求的url地址
url = "https://fanyi.baidu.com/langdetect"

#  构造表单
data = {
    "query": 'I am fine'
}
#  表单数据是放在请求体中的

#  发送请求,获取响应
response = requests.post(url, data=data)

#  打印响应的内容
print(response.content.decode())

ST请求

使用POST请求的情况:

  • 登录注册( POST 比 GET 更安全)
  • 需要传输大文本内容的时候( get方法的拼接长度可能很长,但是浏览器有限制,不能超过2048KB,POST 请求对数据长度没有要求)
import requests

# 确定请求的url地址
url = "https://fanyi.baidu.com/langdetect"

#  构造表单
data = {
    "query": 'I am fine'
}
#  表单数据是放在请求体中的

#  发送请求,获取响应
response = requests.post(url, data=data)

#  打印响应的内容
print(response.content.decode())
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008225.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号