簡體   English   中英

如何直接在Python中發布請求體?

[英]How to post request body in Python directly?

我有關於POST請求的以下詳細信息

1)The URL: "http://kuexams.org/get_results"
2)Request body: "htno=001111505&ecode=kuBA3_Supply_Dec_2013".

我從分析HTTP流量得到了這個。 然后我找到了這個指定這些值的站點,它重新生成了響應。 https://requestable.pieterhordijk.com/sSd7o

我需要知道如何制作類似於網站的內容 只需將Request主體發布到URL並返回數據以進行解析。

PS:我已經嘗試了多種方法來POST到這個網站http://kuexams.org/results/3GKZ-D_QBHLWXrg7lZ2IGoKBI7lGfpSK37GNoykJ8k5UerNGYn21FN6w_R5XZ8IQVUHRb8ZYVwq-zN4BhIjusQ,,/ugresults/ug 這是我累了。 它使用不同的方法,但失敗了。

import mechanize
import cookielib
import urllib
import logging
import sys
import re

br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=3)
br.addheaders = [('User-agent', 'Firefox')]


r = br.open('http://kuexams.org/results/06JZ4SYmTV97s4oROGuLYglPFH3XxJKAunIilJkDBV0gBxSU6YVJ_kXRL0UZb3cIjz9aFdnkYaE-T_S3ubaXPg,,/ugresults/ug')

scrape = r.read()
#print(scrape)
pattern = re.compile('=5&code=(.{5})\'')

img = pattern.findall(scrape) 
print(img)
imgstr = str()
imgstr = img[0]
print(imgstr)

br.select_form("appForm")

br.form["htno"] ='001111441'

br.form["entered_captcha"] = imgstr

response = br.submit()

print response.read()

br.back()

我可以看到帖子請求沒有使用任何cookie或驗證碼細節。 它只實現了客戶端,所以不需要存儲cookie或獲取驗證碼,因此這段代碼對您有用。 使用請求很酷且易於使用。

import requests

url='http://kuexams.org/get_results'

payload={'htno': '001111441', 'ecode': 'kuBA2_Supply_Dec_2013'}

headers={"User-Agent": "Some Cool Thing"}

r=requests.post(url,headers=headers,data=payload)

print r.content

請注意,服務器不接受請求的默認用戶代理,所以我添加了自定義的一個,但它不接受POST請求或可能給出Forbidden Error。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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