【问题标题】:python requests: url with another sub-requestspython请求:带有另一个子请求的url
【发布时间】:2017-11-25 15:10:27
【问题描述】:

当我在网络浏览器中手动执行此 URL 时,我在网络控制台中看到将执行其他三个请求。它有效。

致电: www.my.url/publish_something

  • 获取此命令
  • 获取该命令
  • 发布...

如何在 Python 请求中做到这一点? 我只调用一次“主”-URL,包括我的网络浏览器等所有子请求。

> publish_url = "www.my.url/publish_something" r =
> self.session.get(publish_url, verify=False, params=p)

看来,当我用 python requests-module 调用这个 url 时,他并没有执行子请求。

【问题讨论】:

  • 我真的不知道如何处理请求,但如果你更关心结果而不是知道如何处理 requests,我建议看看 selenium它将通过网络浏览器处理请求并执行其他请求
  • 我相信您正在打开一个普通的 HTML 页面。您的浏览器通常只会发送基于 HTML 的额外请求。然而,Python 不需要。它只会得到响应。您可以根据页面中的链接发送请求。
  • 您必须解析 HTML,提取所有这些链接并手动检索它们。您还应该启用重定向。

标签: python url python-requests


【解决方案1】:

当您在浏览器中打开一个 url 时,浏览器 - 向该 url 发出 GET 请求 - 解析内容 - 为每个图像标签和每个提到外部来源的脚本、样式等标签发出 GET 请求, - 执行脚本,这可能会导致更多的子请求和 DOM 修改, - 最后渲染最终的 DOM。

当您使用 Python(使用 python-rquests、urllib 模块或其他)发送 GET 请求时,会在上述阶段的第一个阶段执行,因此如果您想要更多,您必须自己完成(解析内容、检索图像等)。

或者您可以使用headless browser,例如PhantomJS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 2015-03-13
    • 1970-01-01
    相关资源
    最近更新 更多