Es gibt viele gute Ressourcen bereits auf Stackoverflow, aber ich habe immer noch ein Problem. Ich habe diese Quellen besucht:Navigieren einer Website in Python, Scraping und Buchung
- how to submit query to .aspx page in python
- Submitting a post request to an aspx page
- Scrapping aspx webpage with Python using BeautifulSoup
- http://www.pythonforbeginners.com/cheatsheet/python-mechanize-cheat-sheet
Ich versuche http://www.latax.state.la.us/Menu_ParishTaxRolls/TaxRolls.aspx zu besuchen und eine Gemeinde wählen. Ich glaube, das zwingt einen Beitrag und erlaubt mir, ein Jahr auszuwählen, das erneut posten kann und noch mehr Auswahl zulässt. Ich habe mein Skript ein paar verschiedene Arten geschrieben, die den oben genannten Quellen folgen, und konnte die Seite nicht erfolgreich einreichen, um mir zu erlauben, ein Jahr einzugeben.
Mein aktueller Code
import urllib
from bs4 import BeautifulSoup
import mechanize
headers = [
('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
('Origin', 'http://www.indiapost.gov.in'),
('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17'),
('Content-Type', 'application/x-www-form-urlencoded'),
('Referer', 'http://www.latax.state.la.us/Menu_ParishTaxRolls/TaxRolls.aspx'),
('Accept-Encoding', 'gzip,deflate,sdch'),
('Accept-Language', 'en-US,en;q=0.8'),
]
br = mechanize.Browser()
br.addheaders = headers
url = 'http://www.latax.state.la.us/Menu_ParishTaxRolls/TaxRolls.aspx'
response = br.open(url)
# first HTTP request without form data
soup = BeautifulSoup(response)
# parse and retrieve two vital form values
viewstate = soup.findAll("input", {"type": "hidden", "name": "__VIEWSTATE"})
eventvalidation = soup.findAll("input", {"type": "hidden", "name": "__EVENTVALIDATION"})
formData = (
('__EVENTVALIDATION', eventvalidation[0]['value']),
('__VIEWSTATE', viewstate[0]['value']),
('__VIEWSTATEENCRYPTED',''),
)
try:
fout = open('C:\\GIS\\tmp.htm', 'w')
except:
print('Could not open output file\n')
fout.writelines(response.readlines())
fout.close()
ich dies habe auch in der Shell versucht, und was ich eingegeben und was bekam ich (Änderung der Masse zu reduzieren) kann ich jedenfalls http://pastebin.com/KAW5VtXp
finden Versuchen Sie, den Wert in der Dropdown-Liste "Parish" zu ändern und zu einer Webmaster-Anmeldeseite zu gelangen.
Bin ich damit auf den richtigen Weg? Alle Gedanken wären sehr hilfreich.
Danke!