如何在python中获取下一个表单内容

时间:2015-08-12 09:00:12

标签: python forms web

这是我在python中的第一个脚本(也是帖子)。

在脚本中我填写表单内容并提交。因此,在提交表单后,它将在下一个表单上生成结果。现在问题是下一个表单链接不是静态的,它将根据先前表单中输入的数据进行更改。请参阅下面的一些我的脚本代码

import mechanize

browser = mechanize.Browser()

browser.open('https://example.com')

browser.select_form(nr=1)
browser.form["MyIDNO"] = '000D6F0004C46834'
browser.form["RuleID"] = '0109108301234567890A'
browser.submit()

以上代码只需填写数据并提交即可。现在我想要下一个打开的表单内容。我正在获得动态链接,如下所示

https://example.com/index.php?option=com_gencert&task=results&tmpl=gencert&cfId=189537&MyIDNO=000D6F0004C46834&RuleID=0109108301234567890A&esKey=

如上面链接所示,它将基于MyIDNORuleID生成。

我尝试了一个解决方案,如下所示

html = browser.response().read()
print html

它将以html格式打印所有内容。现在我需要解析特定数据。见下面的一些输出

<tr>
<td><strong>User key: </strong></td>
<td>0200fde8a7f3d1084224962a4e7c54e69ac3f04da6b8</td>
</tr>
<tr>
<td><strong>Institute id: </strong></td>
<td>
      030780ffa3641183273ad548ae09872f9dcf4b0c4267<br/>000d6f0004c468345445535453454341010910830123<br/>4567890a<br/> </td>
</tr>
<tr>
<td><strong>part id:</strong></td>
<td>00ecd01536ff66296f9d572219d7acac02d59b24c6</td>
</tr>
<tr>

从上面的内容我需要输出

User key: 0200fde8a7f3d1084224962a4e7c54e69ac3f04da6b8
Institute id: 030780ffa3641183273ad548ae09872f9dcf4b0c4267000d6f0004c4683454455354534543410109108301234567890a
part id: 00ecd01536ff66296f9d572219d7acac02d59b24c6

1 个答案:

答案 0 :(得分:0)

获得html文档后,您可以使用BeautifulSoup获取所需的数据。

from bs4 import BeautifulSoup

# submit form as per your snippet

html = browser.response().read()
soup = BeautifulSoup(html, 'html.parser')

# Process the content with BeautifulSoup.