从html下载文件?使用python 3的url

从html下载文件?使用python 3的url,python,html,python-3.x,networking,ftp,Python,Html,Python 3.x,Networking,Ftp,我已经搜索了几个小时如何下载一个文件,告诉我如何做到这一点;但是cygwin很可怕,使用起来很麻烦,我正试图在Python3中为一个程序实现这一点。我尝试过使用urllib、requests、wget(在python中)、httplib和其他一些工具。但它只获取重定向页面(如果您将链接粘贴到url栏中,并使用正确格式的url,您将得到此页面) 虽然当我检查一个页面并触发与我尝试的地址相同的下载链接时,它工作正常,并为我提供一个下载弹出窗口。点击“下载数据”可触发该链接 我不明白为什么任何pyth

我已经搜索了几个小时如何下载一个文件,告诉我如何做到这一点;但是cygwin很可怕,使用起来很麻烦,我正试图在Python3中为一个程序实现这一点。我尝试过使用urllib、requests、wget(在python中)、httplib和其他一些工具。但它只获取重定向页面(如果您将链接粘贴到url栏中,并使用正确格式的url,您将得到此页面)

虽然当我检查一个页面并触发与我尝试的地址相同的下载链接时,它工作正常,并为我提供一个下载弹出窗口。点击“下载数据”可触发该链接

我不明白为什么任何python软件包都无法发送正确的get请求,我需要在linux中实现这个程序才能使用“wget”


有人知道如何正确调用url吗?

您需要在url末尾添加
&submit=Download+Data
以下载数据。你可以在谷歌浏览器的inspect元素的network选项卡上看到这一点。希望我能帮忙

我想

from subprocess import call

def download(URL)
      CMD = ['curl',url]
      call(CMD)
要运行此操作,请执行以下操作:

download('www.download.com/blah/bah/blah')
如果要从解释器中使用此选项: 另存为module.py

python -i /path/to/module.py

>>>download('www.download.com/blah/bah/blah')
p、 如果这行得通,我可能会在我的shell程序中使用它

编辑:我的评论:

我尝试了这个,得到了“错误的url”错误


这是我对python中的所有系统命令所做的,因此它与curl有关。

您尝试过urllib.requests吗?(urllib.requests.retreive))如前所述,我尝试了urllib.request.urlretreiveI use Src=“{stat}&Year={yr}&Month={moth}&Day={Day}&timeframe={tf}&submit=Download+Data”。format(stat=stt,yr=yr,mth=mss,Day=Day,tf=time)Src是我在任何库中尝试过的查询请求的输入,但它都不起作用,它总是将我重定向到主页。使用vanilla curl,它不起作用,可能使用某些选项,通过发送正确的标题或使用正确的选项,它可能起作用,但即使使用有效和无效的请求,它也会显示相同的响应。但是我刚才对urllib有一个很好的回应。ok idk如何在注释中编写代码im just ganna在我的回答中是正确的我的建议是从bash熟悉curl(我不是),然后你就会知道如何在python中使用它了只要将命令设置为变量名CMD(不能用call做空格,因为它必须是一个列表,就像我在回答中所做的那样)我认为Bluecode在url的末尾加上“&submit=Download+Data”是正确的,但是idk html,所以我不知道它们之间是否需要/或者从我看到的情况来看,curl接受url,但不接受与文件字段等效的。
from subprocess import call
def download(FILE,URL):
    #FILE = file to save to
    #URL - download from here
    CMD = ['curl','-o',FILE,URL]
    call(CMD)