簡體   English   中英

在 Python 中發送 POST 請求,返回響應為 500

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM