【问题标题】:Dynamically Alter HTML Source动态更改 HTML 源
【发布时间】:2011-09-27 11:44:26
【问题描述】:

我很好奇是否有办法自动从网页动态更改源代码。

例如,我知道 Firefox 的 firebug 插件允许修改源代码并实时查看反应。所以,假设我想登录到一个特定的表单。我可以使用登录名和密码更改此动态源并通过一些自动化脚本进入相关网站吗?如果没有,是否有任何可能更好的替代方法?

谢谢。

【问题讨论】:

  • 当然,jQuery 和 AJAX 调用可以做到这一点。当你说“自动化脚本”时,我不知道你在想什么。
  • 假设我想使用一些自动化 Python 脚本自动登录到某个网站。我无法这样做,因为表单是 Javascript,并且像 mechanize 这样的特定库不能很好地与嵌入式 Javascript 配合使用。我的一个想法是更改源以向表单提供用户名和密码以登录。这完全澄清了吗?

标签: python html firebug web-scraping


【解决方案1】:

如果你想要一些可以自动化IE浏览器的东西,我可以推荐给你的是:WatirWatiN。 Watir 是用 ruby​​ 开发的,而 WatiN 是用 c# 开发的。它们都非常强大,足以满足您的要求。

如果你必须使用 Python 脚本。那么我会推荐 C# + WatiN + IronPython。你可以编写python脚本来调用WatiN的dll。请注意,IronPython 与 Python 不同,它基于 microsoft 的 .net 框架。目前我不知道任何纯 python 产品可以做到与 WatiN 和 Watir 相同的功能。

【讨论】:

  • Selenium 做同样的事情,并且有一个适用于包括 Python 在内的多种语言的客户端 API。
【解决方案2】:

如果您想自动登录网站,则无需编辑源代码,您需要与网络服务器进行交互。尝试curl 并使用它来提交登录详细信息并获取生成的网页。

【讨论】:

  • 我考虑过使用 cURL,但它似乎不能很好地与嵌入式 javascript 配合使用。例如,如果我想创建一些 Python 脚本来自动登录,如果表单是用 Javascript 编写的,它似乎并不好用。
  • 在这种情况下你可能想试试Greasemonkey scripts
【解决方案3】:

对于 Firefox 自动化,我向您推荐 chickenfoot。它可以满足您的需求:

使用登录名更改此动态源 名称和密码,然后输入 有问题的网站通过一些自动化 脚本

但是 chechenfoot 最多只支持 firefox 3。如果你想支持最新版本的 firefox,你可能需要获取source code 并自己编译。

【讨论】:

    【解决方案4】:

    如果你会使用Javascript,试试:

    document.write("HTML CODE HERE");
    

    但是如果你需要在 Python 中,我认为你可以在 HTML 源代码中使用 REPLACE

    【讨论】:

    • 嗨布鲁诺。我很欣赏这个意图,但我不相信你的方法会奏效。仅仅简单地替换源是不够的,我仍然需要让服务器识别这些更改。除非有某种我不知道的方式。
    猜你喜欢
    • 1970-01-01
    • 2016-03-30
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多