簡體   English   中英

填寫表格並使用請求檢索結果

[英]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傳遞給此表單並檢索結果。

檢查瀏覽器開發人員工具中的“網絡”選項卡時,可以看到您需要向提供objetosbtnPesq發布參數的同一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

附帶說明一下,有一些相關工具可以幫助您保持更高的水平並提交表單,請參閱:

兩者都基於requestsBeautifulSoup

暫無
暫無

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

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