嗨Python爱好者,
我正在努力使用Python 3中的 urllib.request 传递参数来填写并提交HTML表单。
html代码的关键部分如下所示:
<H1>Header</H1>
<form method="get" action="/bin/formula.php">
<ul>
<li>Overview <A HREF="/kathegory.php">Kathegory</A>
<li><A HREF="/bin/search.php">Search</A>
<li><A HREF="/bin/formula.php">Formula</A>
<li>go to:
<input type="text" name="id" size=10 maxlength=10>
<input type="submit" value="go">**
</ul>
</form>
<ul>
<li><A HREF="history.php">History</A>
</ul>
<P>
<HR>
在网站上手动填写表单(例如 1 ) http://example.com 时,结果页面将被称为 {{3} }
到目前为止,我在Python中的方法是:
from bs4 import BeautifulSoup
import urllib.request
import urllib.parse
h = {'User-agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
payload = {'id': '1'}
url = 'http://example.com'
data = urllib.parse.urlencode(payload)
#data = data.encode('ascii') # data should be bytes
req = urllib.request.Request(url, data, h)
print(req.__dict__)
with urllib.request.urlopen(req) as response:
the_page = response.read()
print(the_page)
没有成功。
非常感谢来自更有经验的用户的任何建议!
干杯