使用 Python 提交表单后在浏览器中显示网站
Display website in browser after submitting a form using Python
我希望使用 Python(在 2.7 中工作)来:
- 打开网站(具体 http://nunuku.caltech.edu/cgi-bin/getcssconedb_release_img.cgi)。
- 根据 Python 脚本在我的本地计算机上找到的字符串在该页面上输入表单数据。
- 在浏览器中显示生成的页面。
我最初考虑使用 mechanize,它适用于第 (1) 和 (2) 部分。然而,使用 mechanize 一个得到结果页面的 HTML 作为输出(下面代码中的 content
)。然后我可以将 HTML 写入本地文件并使用 webbrowser.open()
打开它,但是由于生成的页面有 javascript,所以显示不正确(没有显示的是更多-或 - 首先查看此页面的全部意义)。
第(3)部分有什么办法吗?廉价的技巧是将 webbrowser.open()
与最终的 URL 字符串一起使用(并插入我的本地数据),除了 URL 一旦 "Submit"按下。
相关代码(包括将 HTML 保存到本地计算机并以这种方式打开它):
#!/usr/bin/env python
import webbrowser
import mechanize
url = 'http://nunuku.caltech.edu/cgi-bin/getcssconedb_release_img.cgi'
br = mechanize.Browser()
br.open(url)
br.select_form(nr = 0)
br['RA'] = ra
br['Dec'] = dec
br['Rad'] = '0.1'
br['IMG'] = ['nun'] # These are for the radio buttons.
br['DB'] = ['photcat']
br['OUT'] = ['csv']
br['SHORT'] = ['short']
response = br.submit()
content = response.read()
with open('results.html', 'w') as f:
f.write(content)
webbrowser.open('results.html')
(上面的br[]
语句是页面上的表单标签,ra
和dec
变量是根据情况从我的文件中取出的值。例如,ra = 03:50:10.71
和 dec = +32:32:29.60
。您可以将它们插入网站——如果您愿意的话——以查看我想要查看的内容。)
感谢任何和所有建议!谢谢!
如我所见,您有兴趣显示带有值的页面
不仅仅是获取已发送请求的数据。
您的想法不错,但如您所见,机械化并未使用任何实际的浏览器实例。机械化
programmatic web browsing
我猜您正在寻找类似的东西:
我希望使用 Python(在 2.7 中工作)来:
- 打开网站(具体 http://nunuku.caltech.edu/cgi-bin/getcssconedb_release_img.cgi)。
- 根据 Python 脚本在我的本地计算机上找到的字符串在该页面上输入表单数据。
- 在浏览器中显示生成的页面。
我最初考虑使用 mechanize,它适用于第 (1) 和 (2) 部分。然而,使用 mechanize 一个得到结果页面的 HTML 作为输出(下面代码中的 content
)。然后我可以将 HTML 写入本地文件并使用 webbrowser.open()
打开它,但是由于生成的页面有 javascript,所以显示不正确(没有显示的是更多-或 - 首先查看此页面的全部意义)。
第(3)部分有什么办法吗?廉价的技巧是将 webbrowser.open()
与最终的 URL 字符串一起使用(并插入我的本地数据),除了 URL 一旦 "Submit"按下。
相关代码(包括将 HTML 保存到本地计算机并以这种方式打开它):
#!/usr/bin/env python
import webbrowser
import mechanize
url = 'http://nunuku.caltech.edu/cgi-bin/getcssconedb_release_img.cgi'
br = mechanize.Browser()
br.open(url)
br.select_form(nr = 0)
br['RA'] = ra
br['Dec'] = dec
br['Rad'] = '0.1'
br['IMG'] = ['nun'] # These are for the radio buttons.
br['DB'] = ['photcat']
br['OUT'] = ['csv']
br['SHORT'] = ['short']
response = br.submit()
content = response.read()
with open('results.html', 'w') as f:
f.write(content)
webbrowser.open('results.html')
(上面的br[]
语句是页面上的表单标签,ra
和dec
变量是根据情况从我的文件中取出的值。例如,ra = 03:50:10.71
和 dec = +32:32:29.60
。您可以将它们插入网站——如果您愿意的话——以查看我想要查看的内容。)
感谢任何和所有建议!谢谢!
如我所见,您有兴趣显示带有值的页面 不仅仅是获取已发送请求的数据。 您的想法不错,但如您所见,机械化并未使用任何实际的浏览器实例。机械化
programmatic web browsing
我猜您正在寻找类似的东西: