Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python从url下载文件-未知错误_Python_Downloadfile - Fatal编程技术网

使用Python从url下载文件-未知错误

使用Python从url下载文件-未知错误,python,downloadfile,Python,Downloadfile,我从特定的韩国url下载文件时遇到问题。当我在谷歌上搜索如何通过url下载文件时,它推荐了许多解决方案,比如使用urlretrieve、urlopen和wget。但是,每当我尝试时,它都会保存一个0字节的pdf文件,并且不会返回任何错误消息 所以我厌倦了使用其他程序,比如Postman或J2downloader,他们用0字节保存了pdf.do。我知道可以用Acrobat Reader打开.do,但大小告诉我它无法下载内容 该站点的url为。如果我通过网站打开它,它会正确下载 现在我不确定是我的代

我从特定的韩国url下载文件时遇到问题。当我在谷歌上搜索如何通过url下载文件时,它推荐了许多解决方案,比如使用urlretrieve、urlopen和wget。但是,每当我尝试时,它都会保存一个0字节的pdf文件,并且不会返回任何错误消息

所以我厌倦了使用其他程序,比如Postman或J2downloader,他们用0字节保存了
pdf.do
。我知道可以用Acrobat Reader打开
.do
,但大小告诉我它无法下载内容

该站点的url为。如果我通过网站打开它,它会正确下载

现在我不确定是我的代码问题还是网站机制不同。如果是网站机制,你能告诉我如何在使用Python时使用它吗

谢谢你的阅读

我尝试的代码

final_url = http://dart.fss.or.kr/pdf/download/pdf.do?rcp_no=20210218000576&dcm_no=7808922
1. 
    urlretrieve(final_url, "./down2.pdf")
2.
    with open("down.pdf",'wb') as file:
        response = requests.get(final_url, allow_redirects=True)
        print(response.content)
        file.write(response.content)
3. 
    mem = urlopen(final_url).read()
    with open("down.pdf",'wb') as file:
        file.write(mem)
        file.close()
4.
    wget.download(final_url, "my download folder")


问题是该网站似乎只允许浏览器下载文件。因此,解决方案是从浏览器中获取用户代理头并输入到程序中

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'}
response = requests.get(final_url, headers=headers)

with open("down.zip",'wb') as file:
    print(response.content)
    file.write(response.content)

有其他选择吗?没有。。。我在你提供的帖子中尝试了所有备选方案,但它只下载了0字节的pdf文件@RandomDavisDid你尝试了吗?我认为您尝试的所有技术只适用于非重定向直接文件链接,你的可能不是。我还认为这可能是一个重定向问题,我尝试了
allow_redirects=True
,但它不起作用,而且即使添加了该参数,它也有相同的url。我想知道“用户代理”是否会影响结果,所以我从chrome复制了用户代理,并添加到程序中,结果成功了。我猜网站只想让浏览器访问它。感谢@RandomDavis的帮助,这让我想到了添加标题。