【问题标题】:Download a file using python from a webpage without opening the webpage使用python从网页下载文件而不打开网页
【发布时间】:2020-01-15 23:18:04
【问题描述】:

我一直在寻找一种编写脚本的方法,该脚本将从特定网站下载文件,但无需打开网站本身。我希望一切都在后台发生。

该网站是 Morningstar,该示例的特定链接是这个: https://financials.morningstar.com/ratios/r.html?t=MSFT 在此页面中,有一个“按钮”(它实际上并没有声明为按钮,而是声明为超链接,HTML 中的<a> 标记)

我在底部添加了一张照片,这样您就可以看到他们编写代码的确切方式。

无论如何,我看到当我单击按钮时,href 属性实际上调用了一个 javascript 函数,该函数然后创建了从中下载文件的链接。

我正在寻找一种方法来编写脚本并为其提供我想要的链接,例如上面的链接,该脚本会将这个特定的 CSV 文件从该页面下载到我选择的文件夹中。

我正在查看一些 selenium 教程,但对于我的具体问题找不到太多帮助。

【问题讨论】:

  • 不打开网页是什么意思?为什么这很重要?
  • 嗨,也许 PhantomJS 可能在这种情况下工作? stackoverflow.com/a/26440563/11746212
  • 如果你知道下载地址可以使用requests
  • @K753 仅当网站是静态的,但我有理由确定 Morningstar 使用动态脚本
  • 你试过他们的 API 吗?不确定它是否免费,但这里有一个链接。 developer.morningstar.com/apis/…

标签: javascript python html selenium web


【解决方案1】:

这是我使用的一个例子:

import requests

url = 'http://via.placeholder.com/350x150'

dashboardFile = requests.get(url, allow_redirects=True)

open('d:/dev/projects/new-wave/dashboard.pdf', 'wb').write(dashboardFile .content)

哦,根据您要分块下载的文件的大小。快速搜索:“python 分块下载大文件”会有所帮助。

【讨论】:

  • 非常感谢您的回答,我会搜索一下关于python中的请求。我刚刚上传了我忘记发布的照片​​。所以我不知道这是否会按照你的建议工作,但我会调查一下。再次感谢您。
  • 不客气。这是关于 SO 的链接:stackoverflow.com/a/16696317/4208845
猜你喜欢
  • 2018-01-27
  • 2019-01-15
  • 2013-05-07
  • 2017-04-09
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 2017-03-13
  • 1970-01-01
相关资源
最近更新 更多