当前位置: 首页 > 面试题库 >

Python机械化,跟随URL链接,nr参数是什么?

凤经国
2023-03-14
问题内容

很抱歉不得不问这样的事情,但是python的机械化文档似乎确实很缺乏,我无法弄清楚。.他们仅举一个例子,我可以通过以下链接找到它:

response1 = br.follow_link(text_regex=r"cheese\s*shop", nr=1)

但是我不想使用正则表达式,我只想根据其URL跟随链接,我该怎么做..还有什么“ nr”有时用于跟随链接?

谢谢你的任何信息


问题答案:

br.follow_link接受一个Link对象或关键字arg(例如nr=0)。

br.links() 列出所有链接。

br.links(url_regex='...') 列出其URL与正则表达式匹配的所有链接。

br.links(text_regex='...') 列出其链接文本与正则表达式匹配的所有链接。

br.follow_link(nr=num)跟随num页面上的th链接,从0开始计数。它返回一个响应对象(与br.open(…)返回的对象相同)

br.find_link(url='...')返回其Link对象url完全等于给定url的对象。

br.find_linkbr.linksbr.follow_linkbr.click_link都接受相同的关键字。运行help(br.find_link)以查看有关这些关键字的文档。

编辑: 如果您有一个希望遵循的目标URL,则可以执行以下操作:

import mechanize
br = mechanize.Browser()
response=br.open("http://www.example.com/")
target_url='http://www.rfc-editor.org/rfc/rfc2606.txt'
for link in br.links():
    print(link)
    # Link(base_url='http://www.example.com/', url='http://www.rfc-editor.org/rfc/rfc2606.txt', text='RFC 2606', tag='a', attrs=[('href', 'http://www.rfc-editor.org/rfc/rfc2606.txt')])
    print(link.url)
    # http://www.rfc-editor.org/rfc/rfc2606.txt
    if link.url == target_url:
        print('match found')
        # match found            
        break

br.follow_link(link)   # link still holds the last value it had in the loop
print(br.geturl())
# http://www.rfc-editor.org/rfc/rfc2606.txt


 类似资料:
  • 问题内容: 我想知道是否有类似Java的Perl / Python机械化的东西。 谢谢! 问题答案: 看看HtmlUnit。它类似于Perl的WWW :: Mechanize 。还有一个Perl版本,名为WWW :: HtmlUnit (它使用Inline :: Java 将Java库的方法公开给Perl)。

  • 问题内容: 我有一个带有按钮的表单,希望能够单击它。 我已经尝试过,但是会出现以下错误: 也不起作用,因为它的类型是按钮并且不提交。 有任何想法吗?谢谢。 问题答案: 单击在 纯HTML 的形式什么都不做。为了执行任何操作,必须包含 javascript 。 并且不运行 javascript 。 因此,您的选择是: 自己阅读JavaScript并模拟其效果 使用运行JavaScript代码 我会做

  • 使用指南 - 统计设置 - 第三方推广管理 - 什么是URL参数? 我们经常可以看到URL后面带有?Par1=xxx&Par2=xxx的类似样式,其中Par1、Par2即为该URL的参数。“?”是参数与URL的链接符,“&”是参数与参数之间的链接符。利用这种方式,我们便可以通过URL来传递信息。 以百度统计中的”指定广告跟踪”功能为例,就是利用在URL中添加指定的参数,实现区分推广页面中的广告信息

  • 问题内容: 我对python机械化的代理支持有疑问。我正在制作一些Web客户端脚本,我想在我的脚本中插入代理支持功能。 例如,如果我有: 如何在我的机械化脚本中添加代理支持?每当我打开此网站时,我都希望它通过代理。 问题答案: 您使用mechanize.Request.set_proxy(host,type)(至少从0.1.11开始) 假设运行在localhost:8888的http代理 应该管用

  • 问题内容: 为什么这段代码会引发SyntaxError? 尽管以下代码段运行时没有可见错误: 问题答案: 必须将所有必需的参数放在任何默认参数之前。仅仅是因为它们是强制性的,而默认参数不是必需的。从语法上讲,如果允许使用混合模式,解释器将 无法 决定哪些值与哪些参数匹配。如果参数的输入顺序不正确,则会引发A : 让我们使用您的函数来查看关键字参数。 假设其允许声明函数如上,然后使用上述声明,我们可

  • 我已通过说明设置跨域跟踪,并确保以下所有必要步骤: 跨域跟踪中包含的所有域必须将数据收集到同一Google Analytics属性中 推荐排除列表中的两个域 使用allowLinker=TRUE