爲何作這個
觀察
- 該網站的post請求參數有兩種類型:(1)參數體放在了query中,即url拼接參數(2)body中要加入一個空的json對象,關於爲何要加入空的json對象,猜想緣由爲反爬蟲。既有query參數又有空對象體的body參數是一件腦洞很大的事情。
- 一開始先在apizza網站上了作了相關實驗才發現上面這個規律的,並發現該網站的請求參數要爲raw形式,要是直接寫代碼找規律不是一件容易的事情。
源碼
import requests
import json
headers = {
'Accept':'application/json, text/javascript, */*; q=0.01',
'X-Requested-With':'XMLHttpRequest',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36',
'Content-Type':'application/json',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.8',
'Cache-Control':'no-cache',
}
#空的對象,body參數
data = {}
data = json.dumps(data)
page = 0
url = '網站地址,後面爲參數?param1=1¶m1='+str(page)
response = requests.post(url = url,data=data ,headers =headers )
print(response.url)
print(response.text)
總結
- 如今相關工具中發現現象
- 請求方式肯定:post仍是get或者其它
- 參數類型:form-data仍是raw或者其它
- 參數位置:如果post請求,在query中仍是body中,仍是兩者皆有