带有登录名的MechanicalSoup:无法使用给定的URL和保存路径访问browser.download_link()

时间:2019-10-22 20:07:20

标签: python python-3.x url downloadfile mechanicalsoup

我目前正在尝试从内部网络获取某些文件。我设法以以下格式获取某些文件的网址 https://example.site/files/testfile.pdf。 现在,我尝试使用以下方法下载此特定文件:

import mechanicalsoup

browser = mechanicalsoup.StatefulBrowser()
for s in site_links ##s = 'https://example.site/file/.../.../file.pdf'
##print(s)
browser.download_link(s, "X:/FolderA/FolderB/test.pdf")

但是每次PyCharm向我抛出一个我不理解的错误(我是Python的新手)。

我进行了搜索,但发现的只是与Python2相关的内容或下载内容,而没有使用用户名和密码进行强化。 如果我忽略了某些内容或采用了其他方法,很高兴收到建议。

1 个答案:

答案 0 :(得分:1)

在您的代码段中,s是一个URL;但是browser.download_link需要一个链接,即类似<a href="...">...</a>的链接。

如果有链接,则可以传递download_link链接。如果没有,MechanicalSoup没有直接从URL下载的便捷功能,因此您需要做更多的工作。例如,下面的(未经测试的)代码应该可以执行您想要的操作:

browser = mechanicalsoup.StatefulBrowser()
response = browser.open(url)
with open('file_to_download_to', 'wb') as fid:
    fid.write(response.content)