我正在嘗試抓取這個網站: https ://kfz.virtuelles-rathaus.de/igv2-man/servlet/Internetgeschaeftsvorfaelle
但我不知道如何設定有效的請求正文。狀態碼是 200,所以請求本身有效。在回應中它說它無法處理資料,因為我使用了瀏覽器導航。它希望我改用網站按鈕。
我認為這是因為負載配置不正確,但我無法讓它作業。
我已經嘗試過以下操作:
- 手動設定標題
- 使用 requests_toolbelt.multipart.encoder
- 自己為多部分/資料格式創建邊界
從 Chrome Dev Tools 復制的decodedPayload
WKZ_UNTERSCH_Z: WT
WKZ_ERKENN_Z: SJ
WKZ_ZIFFERN: 454
WKZ_SUCHMERKMAL: NULL
BTN_WKZSUCHE: suchen
ZEITSTEMPEL: 2022040815031191
從 Chrome Dev Tools 復制的編碼 Payload
------WebKitFormBoundaryj9dFOsSgrDr5dSwA
Content-Disposition: form-data; 名稱="WKZ_UNTERSCH_Z"WT
------WebKitFormBoundaryj9dFOsSgrDr5dSwA
Content-Disposition: form-data; 名稱="WKZ_ERKENN_Z"SJ
------WebKitFormBoundaryj9dFOsSgrDr5dSwA
Content-Disposition: form-data; 名稱="WKZ_ZIFFERN"454
------WebKitFormBoundaryj9dFOsSgrDr5dSwA
內容處置:表單資料;名稱="WKZ_SUCHMERKMAL"NULL
------WebKitFormBoundaryj9dFOsSgrDr5dSwA
Content-Disposition: form-data; 名稱="BTN_WKZSUCHE"suchen
------WebKitFormBoundaryj9dFOsSgrDr5dSwA
Content-Disposition: form-data; 名稱="ZEITSTEMPEL"2022040815031191
------WebKitFormBoundaryj9dFOsSgrDr5dSwA--
我的代碼:
import requests
from datetime import datetime
def main():
payload = {"WKZ_UNTERSCH_Z": "WT",
"WKZ_ERKENN_Z": "GH",
"WKZ_ZIFFERN": "454",
"WKZ_SUCHMERKMAL": "NULL",
"BTN_WKZSUCHE": "suchen",
"ZEITSTEMPEL": datetime.strftime(datetime.now(), '%Y%m%d%H%S%M%f')[:-4]}
url = 'https://kfz.virtuelles-rathaus.de/igv2-man/servlet/Internetgeschaeftsvorfaelle'
# Initialize Session and get Cookie with session ID
s = requests.Session()
r = s.get(f'{url}?MANDANT=08337000&AUFRUF=WKZ')
r = s.post(
f'{url}', data=payload, verify=False)
# Save Response for further scraping
with open('z_1.html', 'w') as f:
f.write(str(r.text))
if __name__ == '__main__':
main()
我已經提前感謝你們的幫助
編輯:
使用 MultipartEncoder 時創建的 Body:
--b3dccffd58a47883c42249db16600856
內容處置:表單資料;名稱="WKZ_UNTERSCH_Z"WT
--b3dccffd58a47883c42249db16600856
內容處置:表單資料;名稱="WKZ_ERKENN_Z"SJ
--b3dccffd58a47883c42249db16600856
內容處置:表單資料;名稱="WKZ_ZIFFERN"454
--b3dccffd58a47883c42249db16600856
內容處置:表單資料;名稱="WKZ_SUCHMERKMAL"NULL
--b3dccffd58a47883c42249db16600856
內容處置:表單資料;名稱="BTN_WKZSUCHE"suchen
--b3dccffd58a47883c42249db16600856
內容處置:表單資料;名稱="ZEITSTEMPEL"2022040909485493
--b3dccffd58a47883c42249db16600856--
uj5u.com熱心網友回復:
我找到了我的問題的答案
我對資料格式沒有問題,但我使用了錯誤的時間戳。
解決方案是使用先前回應的時間戳而不是當前時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/460493.html
