1

我正在尝试使用 mechanize 自动登录网站并检查一些数字。我很确定我已经通过了通常的用户名密码表单的第一页,但第二个登录页面要求您在创建帐户时选择的安全问题的答案中提供特定字符。

就像你最喜欢的宠物叫加菲猫,它要求输入第 2、第 4 和第 5 个字符,你必须用 a、f、i 填写 3 个输入并发布该表格。

我不确定每次登录时机械化搜索所需字符的最佳方法是什么。表单源代码的开头包含此内容。

<label for="frmentermemorableinformation1:strEnterMemorableInformation_memInfo1">Character 5 &#160;</label>

它还有另外 2 个标签供其他 2 个字符填写在表格上,我认为让机械化阅读源代码搜索“字符”的前 3 个出现然后读取字符是个好主意每次出现后,文本出现的前 3 次都是针对这些标签的。

我将如何做这件事,有没有更简单的方法可以做到这一点,而不是阅读整个源代码,可以机械化专门搜索该表单或其他快捷方式中的标签吗?此外,我对编程不是很有经验,所以任何额外的细节或解释都会很棒。谢谢你。

4

1 回答 1

0

我将如何做这件事,有没有更简单的方法可以做到这一点,而不是阅读整个源代码,可以机械化专门搜索该表单或其他快捷方式中的标签吗?

我对 python 中的 mechanize 不是很熟悉,但是对于 ruby​​ 中的 mechanize,例如,您使用 html 解析器来搜索 html。python 的 html 解析器是 BeautifulSoup 或 libxml。BeautifulSoup 更容​​易安装——libxml 有很多依赖项,安装起来很麻烦。这是一个 BeautifulSoup 示例:

from BeautifulSoup import BeautifulSoup as bs
import re

soup = bs(open('html.html'))

form = soup.find(id="form1")

labels = form.findAll('label', text=re.compile("Character \d+") )
labels = labels[:3]

for label in labels:
    print(label.string)

--output:--
Character 5 &#160;
Character 6 &#160;
Character 7 &#160;
于 2013-06-30T00:47:51.470 回答