get請求 / post請求
阿新 • • 發佈:2020-09-09
1.get請求: 不攜帶引數的get請求 不攜帶引數的get請求 + headers 攜帶引數的get請求 + headers 2.post請求: 構建引數的post請求 3.響應資料的獲取與屬性 (1).響應資料的獲取: res.text: 文字資料 res.json(): json資料 res.content: 流 (2).嚮應的其他屬性: res.status_code: 獲取響應狀態碼 res.headers: 響應頭 res.cookie: cookie資訊
# 不攜帶引數的get請求: 爬取搜狗主頁
import requests
url = 'https://www.sogou.com/'
res = requests.get(url=url)
print(res)
print(res.text)
with open('sougou.html', 'w', encoding='utf-8') as f:
f.write(res.text)
# 不攜帶引數的get請求 + headers: 爬取知乎的發現頁
import requests
headers = {
'User-Agent ': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
}
url = 'https://www.zhihu.com/explore'
res = requests.get(url=url, headers=headers)
with open('zhihu.html', 'w', encoding='utf-8') as f:
f.write(res.text)
# 攜帶引數的get請求 + headers: 知乎的發現欄中搜索Python
import requests
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
}
url= 'https://www.zhihu.com/search?'
params = {
'type':'content',
'q':'python'
}
res = requests.get(url=url, headers=headers, params=params)
print(res)
print(res.text)
with open('python.html', 'w', encoding='utf-8') as f:
f.write(res.text)
重點掌握GET & POST: GET與POST的區別
1、GET請求中的引數包含在URL裡面,資料可以在URL中看到,而POST請求的URL不回包含這些資料,POST的資料
都是通過表單形式傳輸的。會包含在請求體中
2、GET請求提交的資料最多隻有1024位元組,而POST方式沒有限制
3、post請求比get請求相對安全
# requests的post請求: 以post方式請求httpbin.org/post時會返回提交的請求資訊
import requests
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
}
url = 'http://httpbin.org/post'
data = {
'name': 'spiderman',
'age': 8
}
res = requests.post(url=url, headers=headers, data=data)
print(res.text)