[英]Send POST request in Python returning response as 500
我正在嘗試抓取一個在 POST 請求中提交表單以獲取數據的網站。
下面是我正在執行的代碼:
from bs4 import BeautifulSoup
import requests
headers = {
'Content-Type':'application/x-www-form-urlencoded',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}
url = 'https://ipindiaservices.gov.in/PublicSearch/PublicationSearch/Search'
with requests.Session() as s:
response = s.get('https://ipindiaservices.gov.in/PublicSearch/PublicationSearch/', headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
hidden = soup.find_all("input", {'type':'hidden'})
params = {x["name"]: x["value"] for x in hidden}
params['TextField6'] = 'ltd'
response = s.post(url, headers=headers, params=params)
soup = BeautifulSoup(response.content, 'html.parser')
print(response)
我得到 500 作為發布請求的響應值。 獲取請求工作正常,並給我 200 的響應。不確定發布請求中出了什么問題。 在提交我正在填寫的表格時,請將申請人姓名字段輸入為ltd 。 其余字段具有默認值。 以下是提交表單的網址: https ://ipindiaservices.gov.in/PublicSearch/PublicationSearch
我正在將所有輸入字段 TextField1 - TextField15 更新為除 TextField6 之外的空格,我將值作為 ltd 傳遞。 此外,我將兩個隱藏字段 Published 和 Granted 設置為默認值。
這兩個復選框字段也與 2 個隱藏字段具有相同的名稱 - 已發布和已授予。 不確定這是否是導致問題的原因
<input checked="checked" data-val="true" data-val-required="The Published field is required." id="Published" name="Published" title="Published" type="checkbox" value="true"/>
<input name="Published" type="hidden" value="false"/>
<input data-val="true" data-val-required="The Granted field is required." id="Granted" name="Granted" title="Granted" type="checkbox" value="true"/>
<input name="Granted" type="hidden" value="false"/>
500 響應代碼意味着服務器上存在未捕獲的異常,您無能為力。 您可以嘗試使用請求中發送的一些值,也許您可以獲得 2xx 響應代碼(或至少不是 500)
我的錯,我的代碼中有一個錯字。 response = s.post(url, headers=headers, params=params) 應該是 response = s.post(url, headers=headers, data=params)
問題得到解決。 請關閉這個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.