【问题标题】:Python, how to get the http headerPython,如何获取http标头
【发布时间】:2016-09-08 09:10:53
【问题描述】:

我正在编写一个脚本来“自动化我的生活”:) 但遇到了一个我无法解决的问题。

这个 python 脚本会抓取一个页面并获取我需要的“产品”的链接,问题是一旦我获得了产品页面的链接来下载这个“产品”的 pdf,你必须按一个按钮,这就是问题所在,因为按钮中没有href:

<Form name="F1" method="POST" action="onSubmit="if($$('btn_download').disabled)return false;$$('btn_download').value='Invia File...';$$('btn_download').disabled=true;return true;">

按下按钮时查看 http 标头,我看到下载文件时它使用如下链接:

https://example.com:443/d/vmlz3ovktv2fvxijixczjdagbdnaeamniexu4zypx3tlesibbhuievcy/product.pdf

值“vmlz3ovktv2fvxijixczjdagbdnaeamniexu4zypx3tlesibbhuievcy”每天都在变化,有什么建议可以解决这个问题吗?

是否可以在 python 中获取 http 标头并解析以获取值? 还是按一个按钮然后处理下载?

非常感谢!

【问题讨论】:

    标签: python http download header automation


    【解决方案1】:

    它不能解决“获取标题”的问题,但我建议使用Selenium。它是一个网络浏览器自动化工具,您可以将脚本设置为单击按钮。

    这是 Python 的 Selenium 参考:link

    【讨论】:

    • 是的,我使用 selenium 作为解决方法,但我很想找到一种方法来避免它,因为我不想与其他应用程序(例如浏览器)进行交互跨度>
    • 您必须弄清楚“vmlz3ovktv2fvxijixczjdagbdnaeamniexu4zypx3tlesibbhuievcy”值是如何生成的。查看网站上使用的脚本,或者检查字符串是否存储在 html 中的某个位置。
    • 我尝试这样做,查看源代码我发现了这些值:'
      正如我所说,还要查看开发人员工具中的脚本(“.js”文件)——也许有一些部分会生成这个值
    【解决方案2】:

    您可以为此使用 Beautiful Soup。 Beautiful Soup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据。

    【讨论】:

    • 是的,我已经在使用 bs4 来编辑页面,但据我所知,bs4 没有按下按钮的能力。我为此使用了硒,但如果可能的话,我想要没有硒的东西,因为它是“浏览器绑定的”
    猜你喜欢
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 2016-09-21
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多