基於Python的Post請求數據爬取

爲何作這個

  • 和同窗聊天,他想爬取一個網站的post請求

觀察

  • 該網站的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&param1='+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中,仍是兩者皆有
相關文章
相關標籤/搜索