在javascrip的特定表单上使用Python mechanize

2024-04-30 01:49:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Python mechanize模块通过以下形式检索数据:http://archive.stsci.edu/kepler/data_search/search.php?form=fuf

我遇到的问题是左下角的“Output Columns”区域,它使用javascript指定输出格式。我希望能够选择一个特定的项目列表,这通常是通过周围的javascript按钮来选择的。在

我刚开始机械化,很久没看过javascript了。我已经看过了负责的javascript,但不知道该怎么做。有什么提示吗?在

更具体地说:有没有一种方法可以使用mechanize来修改列表中的元素?在


Tags: 模块数据formhttp列表searchdatajavascript
1条回答
网友
1楼 · 发布于 2024-04-30 01:49:13

我建议直接对该表单进行POST调用,而不是通过mechanize与表单进行交互。下面是我如何使用mechanize

import mechanize
from urllib import urlencode
opener = mechanize.build_opener()
data = {"resolver":"NED","radius":"0.02","equinox":"J2000","ktc_target_type[]":"LC","ktc_target_type[]":"SC","extra_column_name_1":"ktc_kepler_id","extra_column_value_1":"","extra_column_name_2":"ktc_kepler_id","extra_column_value_2":"","extra_column_name_3":"ktc_kepler_id","extra_column_value_3":"","extra_column_name_4":"ktc_kepler_id","extra_column_value_4":"","selectedColumnsCsv":"Mark,ktc_kepler_id,ktc_investigation_id,sci_data_set_name,ktc_target_type","selectedColumnsList[]":"ktc_target_type","availableColumns":"Mark","ordercolumn1":"ang_sep","ordercolumn2":"ktc_kepler_id","ordercolumn3":"","coordformat":"sex","outputformat":"HTML_Table","max_records":"1001","max_rpp":"100","action":"Search"}
d = urlencode(data)
url = 'http://archive.stsci.edu/kepler/data_search/search.php'
stuff = opener.open(url,d)
info_i_want = stuff.read()

基本上,把你的搜索内容放到字典里,给服务器打一个POST调用,然后读你的响应。在

相关问题 更多 >