python有个内置模块发送请求urllib
的request
的 openurl()
方法,打开一个链接,就是发送一个请求,,
因为内置模块发请求不是那么好用,一般都会使用第三方的请求包,requests
模块,
请求头
User-Agent
: 身份标识,表示用的什么发送请求
Referer
: 防盗链,,(这次请求是从哪个页面来的)
cookie
: 用户登录信息
响应头
cookie
神奇的东西
: 反爬而设置的障碍
requests使用
get
keyword = input("关键字:")
url = f"https://www.sogou.com/web?query={keyword}"
import requests
headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
}
resp = requests.get(url,headers=headers)
# print(resp.text)
# 查看请求的header
print(resp.request.headers)
get携带参数
import requests
url = "https://movie.douban.com/j/search_subjects"
params = {
"type": "tv",
"tag": "国产剧",
"page_limit": "50",
"page_start": "0",
}
headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
}
resp = requests.get(url,params = params,headers=headers)
print(resp.text)
print(resp.request.url)
post
import requests
url = "https://fanyi.baidu.com/sug"
data = {
"kw":input("请输入一个单词:")
}
resp = requests.post(url,data=data)
# 字符串
# print(resp.text)
# 返回的是json 字典,,
result = resp.json()["data"]
for item in result:
# print(item,type(item))
for k,v in item.items():
print(k,v)