【问题标题】:Advanced screen-scraping using curl使用 curl 进行高级屏幕抓取
【发布时间】:2012-01-07 20:37:51
【问题描述】:

我需要创建一个脚本,该脚本将登录到经过身份验证的页面并下载 pdf。

但是,我需要下载的 pdf 不在 URL 上,而是在单击页面上的特定 input 按钮时生成的。当我检查 HTML 源代码时,它只给了我按钮图形的 url 和一些晦涩的 name 按钮 inputaction="."

另外,按钮所在的url和表单名都被遮挡了,例如:

  • 网址=/WebObjects/MyStore.woa/wo/5.2.0.5.7.3
  • 输入名称=0.0.5.7.1.1.11.19.1.13.13.1.1

如何登录页面,“单击”该按钮,然后在脚本中下载 pdf 文件?

【问题讨论】:

    标签: python curl screen-scraping


    【解决方案1】:

    也许Mechanize 模块可以提供帮助。

    我认为单击按钮时的 url 可能是使用 javascript 生成的。所以,要从 python 脚本运行 javascript 代码,请查看Spidermonkey

    【讨论】:

      【解决方案2】:

      尝试机械化或斜纹。 HttpFox 或 firebug 可以帮助您构建查询。请记住,您还可以从浏览器中提取 cookie,稍后将其与 py 库一起使用。如果代码是由 javascript 生成的,则可以对其进行“逆向工程”。如果没有,您可以运行一些 javascript 解释或使用 selenium 或 windmill 编写一个真正的浏览器。

      【讨论】:

        【解决方案3】:

        您可以观察单击按钮时发出的请求(使用 Firefox 中的 Firebug 或 Chrome 中的开发者工具)。然后您可以直接请求 PDF。

        如果不查看相关页面,很难提供帮助。

        【讨论】:

          【解决方案4】:

          正如 Acorn 所说,您应该尝试监控实际请求,看看您是否可以发现某种模式。

          如果不是,那么您最好的选择实际上是自动化一个功能齐全的浏览器,该浏览器将能够运行 Javascript,因此您将完全模仿普通用户会做的事情。查看 Python Wiki 上的 this page 以获取想法,查看Python Wrappers around Web “Libraries” and Browser Technology部分。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-07-21
            • 1970-01-01
            • 1970-01-01
            • 2011-01-12
            • 2013-12-31
            • 2013-01-12
            • 2017-02-25
            • 2023-03-25
            相关资源
            最近更新 更多