机械化br.click_link()和br.follow_link()之间的区别

时间:2012-11-03 00:20:52

标签: python forms mechanize

我正在使用mechanize来自动化一些表单提交。

要做到这一点,我需要转到某个网站的主页,点击带有特定文本的链接,该链接将我重定向到另一个页面,并在新页面中填写表格。

我尝试使用

  response = br.follow_link(text_regex="sometext")

  for f in response.forms()
      print f.name

我得到的错误消息是AttributeError:closeable_response实例没有属性'forms'

当我尝试

for f in br.forms()
    print f.name

它会在hompage中打印表单的名称,而不是我重定向到的新页面。

如何在新页面中找到表单的名称?

'回复'包含什么?

click_link()和follow_link()之间有什么区别。 mechnanize doc并没有清楚地解释这一点。

由于

1 个答案:

答案 0 :(得分:1)

了解click_link()和follow_link()之间的区别:

两种方法都使用与参数相同的关键字。

  • click_link()是一个返回Request对象的方法,然后可以用它来创建请求:

    req = br.click_link(text='Sample Text')
    br.open(req)
    
  • follow_link()将执行与.open()相同的操作,直接打开链接。

此信息取自以下文档: http://joesourcecode.com/Documentation/mechanize0.2.5/mechanize._mechanize.Browser-class.html#click_link

在wwwsearch给出的示例中可以观察到follow_link()行为: http://wwwsearch.sourceforge.net/mechanize/