[英]Fill form and retrieve result using Requests
我有一個網站表單,我想填充一些數據並檢索結果。
我能夠找出html中的表單ID /類,但是我不知道如何設置內容並將其發送回服務器並檢索結果
我正在使用Request來獲取URL和BeautifulSoup,以解析html。
這是我到目前為止所擁有的:
import requests
from bs4 import BeautifulSoup as bs
def get_form(raw_resp):
soup = bs(raw_resp.text)
soup = soup.body.find_all('textarea', attrs={'id':'objetos'})
form = soup[0]
return getattr(form,'attrs')
payload = {
'object ID': 'SOMEIDHERE',
}
url = 'http://www2.correios.com.br/sistemas/rastreamento/'
with requests.session() as s:
resp = s.get(url)
form = get_form(resp)
for key,value in form.items():
print "%s = %s"%(key,value)
輸出:
style = text-transform:uppercase;
name = objetos
onblur = this.value=this.value.toUpperCase()
onkeydown = if (event.keyCode == 13) { this.form.submit(); return false; }
id = objetos
class = [u'f8col', u'fldSRO', u'f3row']
我想將object_ID傳遞給此表單並檢索結果。
檢查瀏覽器開發人員工具中的“網絡”選項卡時,可以看到您需要向提供objetos
和btnPesq
發布參數的同一URL發出POST
請求:
with requests.session() as s:
s.get(url)
response = s.post('http://www2.correios.com.br/sistemas/rastreamento/resultado.cfm',
data={'objetos': payload['object ID'],
'btnPesq': 'Buscar'})
print response.content
附帶說明一下,有一些相關工具可以幫助您保持更高的水平並提交表單,請參閱:
兩者都基於requests
和BeautifulSoup
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.