import requests
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"}
kw = {'wd':'浏览器请求'}
temp_url = 'https://www.baidu.com'
url = 'https://www.baidu.com/?wd={}'.format('晴天')
response = requests.get(temp_url,headers=headers,params=kw)
assert response.status_code == 200 #断言响应码
print(response.headers) #响应头
print(response.request.headers) #请求头
print(response.url) #相应url
print(response.request.url) #请求url
print(response.status_code) #响应码
#200
print(response.request.url) #请求url
#通过url解码获取参数
https://www.baidu.com/?wd=%E6%B5%8F%E8%A7%88%E5%99%A8%E8%AF%B7%E6%B1%82
print(response.text)
#打印相应内容到文件
with open('url_text.txt','w',encoding='utf-8') as fp:
fp.write(response.text)
with open('url_content.txt','w',encoding='utf-8') as fp:
fp.write(response.content.decode())
response.text和 response.content的区别:
- response.content这个是直接从网络上面抓取的数据,没有经过任何解码,所以是一个 bytes类型,其实在硬盘上和在网络上传输的字符串都是 bytes类型,
- response,text:这个是 requests,将 response.content进行解码的字符串,解码需要指定一个编码方式, requests会根据自己的猜测来判断编码的方式,所以有时候可能会猜测错误,就会导致解码产生乱码,这时候就应该使用 respon.content, decode('utf-8)
进行手动解码。