Python selecionando um valor em uma caixa de combinação e HTTP POST
-
12-09-2019 - |
Pergunta
Em Python, eu estou tentando ler os valores sobre os http://utahcritseries.com/RawResults.aspx . Como posso ler outras que o padrão de 2002?
anosAté agora, usando mecanizar, eu fui capaz de referenciar o SELECT e lista todas as suas opções disponíveis / valores, mas estou inseguro sobre como alterar seu valor e reenvie o formulário.
Estou certo de que este é um problema comum e é frequentemente solicitado, mas eu não tenho certeza do que eu deveria estar procurando.
Solução
Assim como sobre isto:
from mechanize import Browser
year="2005"
br=Browser()
br.open("http://utahcritseries.com/RawResults.aspx")
br.select_form(name="aspnetForm")
control=br.form.find_control("ctl00$ContentPlaceHolder1$ddlSeries")
control.set_value_by_label((year,))
response2=br.submit()
print response2.read()
Outras dicas
Com problemas relacionados com AJAX-carregamento de páginas, use Firebug!
Instale e Firebug aberto (é um plugin do Firefox), acesse a página Net, e certifique-se "All" é selecionado. Abra a URL e mudar a caixa de seleção, e ver o que é enviado para o servidor, e o que é recebido.
Parece que o ctl00$ContentPlaceHolder1$ddlSeries
campo chamado-catchily é o que é responsável .. Faz o seguinte trabalho ..?
import urllib
postdata = {'ctl00$ContentPlaceHolder1$ddlSeries': 9}
src = urllib.urlopen(
"http://utahcritseries.com/RawResults.aspx",
data = urllib.urlencode(postdata)
).read()
print src