Die Website, die ich analysieren möchte, hat nur ein Eingabefeld ohne Formular. Ich habe Probleme, nur das einzelne Eingabefeld zu definieren, ihm eine Adresse zu übergeben und dann zu senden.mechanicsoup - So geben Sie ein einzelnes Textfeld ein
Was ich tun möchte, ist eine Adresse eingeben, übermitteln, die Informationen unter id="A18"
title="Click to get bulk trash pick up info"
abrufen und in JSON laden.
Python:
import mechanicalsoup
# URL that we authenticate against
map_url = "http://mapservices.phoenix.gov/gis/imap/iMap.html"
address = "<address>"
json_file = "/home/pi/bulk_pickup.json"
# Setup browser
browser = mechanicalsoup.StatefulBrowser(
soup_config={'features': 'lxml'},
user_agent='Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13',
)
# Open the login URL
map_page = browser.get(map_url)
# Similar to assert login_page.ok but with full status code in case of failure.
map_page.raise_for_status()
search_form = mechanicalsoup.Form(map_page.soup.select_one('input[id="search_input"]'))
search_form.input({'search_input': address})
Ist es eine öffentliche Website? Wenn ja, können Sie die URL angeben? –
map_url = "http://mapservices.phoenix.gov/gis/imap/iMap.html" – solar411
In der Tat, tut mir leid. Ich habe im Text nachgesehen, nicht nach dem Code. –