在python里所有变量都是对象
import requests
url = 'http://www.baidu.com/'
respone = requests.get(url)
# 参数
# 响应的url (访问网站被重定向 这是真地址)
print(respone.url)
# 状态码
print(respone.status_code)
# 请求头
print(respone.request.headers)
# 响应头
print(respone.headers)
# 方法
# 响应的cookie
print(respone.cookies)
# json字符串响应内容转python对象
# respone.json()
不带参数默认utf8
respone.content.decode()
cookie状态保持第一次访问一般没有
发送带参数的请求
第一种是url里带参数
第二种给参数创建字典
import requests
url = 'https://www.baidu.com/s?'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'
}
data={
'wd':'python'
}
# 第一个是参数,第二个headers等于字典
respone = requests.get(url, headers=headers,params=data)
print(respone.content.decode())
成功学会最简单的伪装。
带着cookie进行伪装
import requests
url = 'https://github.com/用户名'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36',
'Cookie': '你自己的cookie'
# 多带一个空格就会报错
}
data={
'wd':'python'
}
# 第一个是参数,第二个headers等于字典
response = requests.get(url, headers=headers)
print(response.content.decode())
with open('github1.html', 'wb')as f:
f.write(response.content)
cookies参数的使用
import requests
url = 'https://github.com/自己用户名'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36',
}
temp = '自己的cookie'
# 稳妥方案
cookie_list = temp.split(';')
cookies = {}
for cookie in cookie_list:
cookies[cookie.split('=')[0]] = cookie.split('=')[-1]
response = requests.get(url, headers=headers, cookies=cookies)
print(response.content.decode())
with open('github2.html', 'wb')as f:
f.write(response.content)
假如你字典推导式很溜
cookies = {cookie.split('=')[0]:cookie.split('=')[-1]for cookie in cookie_list}
cookies = {}
for cookie in cookie_list:
cookies[cookie.split('=')[0]] = cookie.split('=')[-1]
这两个是一样的。
一个获得cookie不常使用的小工具
import requests
url = 'https://www.baidu.com/'
response = requests.get(url)
# response.cookies 是 cookieJar对象
print(response.cookies)
# 对象变字典
dict_cookies = requests.utils.dict_from_cookiejar(response.cookies)
print(dict_cookies)
#字典变对象
jar_cookies = requests.utils.cookiejar_from_dict(dict_cookies)