首页 > 解决方案 > python urllib - 在标题中发送#input文本并提交

问题描述

我正在尝试访问一个网站并为网站上的输入赋予一定的价值。

输入的形式为:

<input id="wavelength" name="wavelength" style="width:80pt;" 
onchange="nk(false),reflection(true),transmission(false)">
<input id="wavelength_submit" type="submit" class="noprint" value="↵" 
onclick="nk(false),reflection(true),transmission(false)">

我对此很陌生,但我知道您可以要求特定变量具有特定值。

我要求的是:

url = 'https://refractiveindex.info'
values = {'shelf': 'glass', 'book': axicon_material, 'wavelength':  used_wavelength, 'wavelength_submit': 'true'}
data = urllib.parse.urlencode(values)
data = data.encode('utf-8')

index_mainpage_request = urllib.request.Request(url,data)
index_mainpage_response = urllib.request.urlopen(index_mainpage_request)
paragraphs = re.findall(r'<p>(.*?)</p>', str(index_mainpage_response.read()))

然而,网站上的输入框并不想更改其内容。有没有办法根据我的要求做到这一点?因为这种方式似乎行不通

标签: pythonhtmlurlurllib

解决方案


Selenium 是我一直在寻找的包。但是 phantomJS 有无头格式,这正是我想要的。

不过,我认为会有更好的方法从网站数据库中获取信息,而不是连接它。


推荐阅读