Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 机械组-如何输入单个文本框_Python_Mechanicalsoup - Fatal编程技术网

Python 机械组-如何输入单个文本框

Python 机械组-如何输入单个文本框,python,mechanicalsoup,Python,Mechanicalsoup,我试图解析的站点只有一个没有表单的输入框。我在定义单个输入框、传递地址然后提交时遇到问题 我想做的是在id=“A18”title=“单击以获取批量垃圾收集信息”下输入地址、提交、获取信息并加载到JSON中 Python: import mechanicalsoup # URL that we authenticate against map_url = "http://mapservices.phoenix.gov/gis/imap/iMap.html" address = "<addr

我试图解析的站点只有一个没有表单的输入框。我在定义单个输入框、传递地址然后提交时遇到问题

我想做的是在
id=“A18”
title=“单击以获取批量垃圾收集信息”
下输入地址、提交、获取信息并加载到JSON中

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})
导入机械组
#我们对其进行身份验证的URL
map_url=”http://mapservices.phoenix.gov/gis/imap/iMap.html"
address=“”
json_file=“/home/pi/bulk_pickup.json”
#设置浏览器
browser=mechanicalsoup.StatefulBrowser(
soup_config={'features':'lxml'},
用户_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',
)
#打开登录URL
map\u page=browser.get(map\u url)
#类似于assert login_page.ok,但在出现故障时使用完整的状态代码。
映射页面。为映射状态提升映射()
search_form=mechanicalsoup.form(映射页面.soup.select_one('input[id=“search_input”]))
search\u form.input({'search\u input':address})
不幸的是,该页面似乎大量使用JavaScript。您看到的
标记甚至不是
的一部分,MechanicalSoup需要表单的
action=
属性来知道在哪里提交它。要么您需要自己破解底层内容(但与使用裸
请求
库相比,MechanicalSoup没有多大帮助),要么您需要更高级的解决方案,如Selenium

有关更多信息,请参阅

如果页面更“HTMLy”而不是“JavaScripty”,您可以编写

browser.open(map_url)
browser.select_form(...)
browser["search_input"] = ...
browser.submit_selected()
不幸的是,该页面似乎大量使用JavaScript。您看到的
标记甚至不是
的一部分,MechanicalSoup需要表单的
action=
属性来知道在哪里提交它。要么您需要自己破解底层内容(但与使用裸
请求
库相比,MechanicalSoup没有多大帮助),要么您需要更高级的解决方案,如Selenium

有关更多信息,请参阅

如果页面更“HTMLy”而不是“JavaScripty”,您可以编写

browser.open(map_url)
browser.select_form(...)
browser["search_input"] = ...
browser.submit_selected()

它是一个公共网站吗?如果是的话,你能提供url吗?map_url=“”的确,对不起。我看的是文本,不是代码。是公共网站吗?如果是的话,你能提供url吗?map_url=“”的确,对不起。我看的是文本,不是代码。