基于Python的Post請求數(shù)據(jù)爬取的方法詳解
為什么做這個
和同學聊天,他想爬取一個網站的post請求
觀察
該網站的post請求參數(shù)有兩種類型:(1)參數(shù)體放在了query中,即url拼接參數(shù)(2)body中要加入一個空的json對象,關于為什么要加入空的json對象,猜測原因為反爬蟲。既有query參數(shù)又有空對象體的body參數(shù)是一件腦洞很大的事情。
一開始先在 apizza網站 上了做了相關實驗才發(fā)現(xiàn)上面這個規(guī)律的,并發(fā)現(xiàn)該網站的請求參數(shù)要為raw形式,要是直接寫代碼找規(guī)律不是一件容易的事情。
源碼
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參數(shù)
data = {}
data = json.dumps(data)
page = 0
url = '網站地址,后面為參數(shù)?param1=1¶m1='+str(page)
response = requests.post(url = url,data=data ,headers =headers )
print(response.url)
print(response.text)
總結
- 現(xiàn)在相關工具中發(fā)現(xiàn)現(xiàn)象
- 請求方式確定:post還是get或者其它
- 參數(shù)類型:form-data還是raw或者其它
- 參數(shù)位置:若是post請求,在query中還是body中,還是二者皆有
ps:python requests 發(fā)起http POST 請求
python requests 發(fā)起http POST 請求,帶參數(shù),帶請求頭:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
url = 'http://official-account/app/messages/group'
body = {"type": "text", "content": "測試文本", "tag_id": "20717"}
headers = {'content-type': "application/json", 'Authorization': 'APP appid = 4abf1a,token = 9480295ab2e2eddb8'}
#print type(body)
#print type(json.dumps(body))
# 這里有個細節(jié),如果body需要json形式的話,需要做處理
# 可以是data = json.dumps(body)
response = requests.post(url, data = json.dumps(body), headers = headers)
# 也可以直接將data字段換成json字段,2.4.3版本之后支持
# response = requests.post(url, json = body, headers = headers)
# 返回信息
print response.text
# 返回響應頭
print response.status_code
總結
以上所述是小編給大家介紹的基于Python的Post請求數(shù)據(jù)爬取的方法詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
numpy存取數(shù)據(jù)(tofile/fromfile)的實現(xiàn)
本文主要介紹了numpy存取數(shù)據(jù)(tofile/fromfile)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02
python 提取tuple類型值中json格式的key值方法
今天小編就為大家分享一篇python 提取tuple類型值中json格式的key值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python 如何快速找出兩個電子表中數(shù)據(jù)的差異
下面小編就為大家?guī)硪黄猵ython 如何快速找出兩個電子表中數(shù)據(jù)的差異。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05

