Как отправить динамическую форму на этом сайте в Python? - PullRequest
0 голосов
/ 28 марта 2019

Я новичок в веб-скрепинге и у меня много проблем с этим сайтом больше недели.

Я хочу заполнить формы с информацией о штате и городе, после чего сайт вернет мне таблицу.Я хочу получить информацию из этих таблиц

Я не знаю, что добавить в 'browser [' ???? '] =' ???? 'получить отправленную форму.Я пробовал 'option', '#estadoSAGIUFMU', 'form, #estadoSAGIUFMU', и ни один из них не сработал.

вот данные о состоянии, которые можно отправить:

<table>
    <tr>
        <td>
            <select name='uf_ibge' style='width: 240px' id='estadoSAGIUFMU' onchange="document.getElementById('nome_estadoSAGIUFMU').value=this.options[this.selectedIndex].text;ajaxSAGIUF('selector_municipiosSAGIUF','p_ibge='+this.value);document.getElementById('selector_municipiosSAGIUF').innerHTML = '';">
                set names 'utf8';select uf, n_uf as estado, id_uf as ibge from mapas.shp_uf order by uf
                <option value=''>Selecione um estado</option>
                <option value='12'>AC - Acre</option>
                <option value='27'>AL - Alagoas</option>
                <option value='13'>AM - Amazonas</option>
                <option value='16'>AP - Amapá</option>
                <option value='29'>BA - Bahia</option>
                <option value='23'>CE - Ceará</option>
                <option value='53'>DF - Distrito Federal</option>
                <option value='32'>ES - Espírito Santo</option>
                <option value='52'>GO - Goiás</option>
                <option value='21'>MA - Maranhão</option>
                <option value='31'>MG - Minas Gerais</option>
                <option value='50'>MS - Mato Grosso do Sul</option>
                <option value='51'>MT - Mato Grosso</option>
                <option value='15'>PA - Pará</option>
                <option value='25'>PB - Paraíba</option>
                <option value='26'>PE - Pernambuco</option>
                <option value='22'>PI - Piauí</option>
                <option value='41'>PR - Paraná</option>
                <option value='33'>RJ - Rio de Janeiro</option>
                <option value='24'>RN - Rio Grande do Norte</option>
                <option value='11'>RO - Rondônia</option>
                <option value='14'>RR - Roraima</option>
                <option value='43'>RS - Rio Grande do Sul</option>
                <option value='42'>SC - Santa Catarina</option>
                <option value='28'>SE - Sergipe</option>
                <option value='35'>SP - São Paulo</option>
                <option value='17'>TO - Tocantins</option>
            </select>
            <input name='nome_estado' id='nome_estadoSAGIUFMU' type='hidden' value=''>
        </td>
        <td>
            <div id='selector_municipiosSAGIUF'>
            </div>
        </td>
    </tr>
</table>

здесьэто код, который я написал до сих пор

from mechanize import Browser
import lxml.html as lh

browser = Browser()
browser.open('http://aplicacoes.mds.gov.br/sagirmps/estrutura_fisica/preenchimento_municipio_cras_new1.php')

browser.select_form(nr=0)
browser['????'] = '????'

Я также попробовал это:

import requests
url = 'http://aplicacoes.mds.gov.br/sagirmps/estrutura_fisica/preenchimento_municipio_cras_new1.php'
r = requests.post(url, data = {'Selecione um estado':'SP - São Paulo', 'Selecione um município': 'Bauru'})

r.text

Но когда я использую r.text, он возвращает весь HTML-код, по-видимому

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...