0

好的,所以问题是我访问了一个网站来下载我想要的文件,但问题是我尝试从中下载文件的网站没有托管实际文件,而是使用保管箱来托管它,所以只要你点击下载您的重定向到一个空白页面,该页面在一个小窗口中弹出下拉框,允许您下载它。需要注意的是,没有登录,所以我可以直接将 python 引导到 dropbox 弹出的链接,但它不会下载文件。

import urllib

url = 'https://thewebsitedownload.com' 

filename = 'filetobedownloaded.exe'  
urllib.urlretrieve(url, filename)

这就是我使用的代码,它就像直接下载的魅力,但现在当我尝试将它用于具有下拉框弹出下载的网站时,它最终只是下载了该网站的 html 代码(据我所知) 并且实际上并不下载文件。一般来说,我对 python/ 编码还是比较陌生,但到目前为止我很喜欢它,这只是我遇到的第一堵砖墙,但我没有找到任何类似的解决方案。提前致谢!示例代码帮助很大,这就是我到目前为止的学习方式。

4

1 回答 1

0

使用Beautifulsoup解析你得到的 html。然后,您可以获得指向该文件的 href 链接。网上有很多 Beautifulsoup 教程,所以我认为您会发现在您的特定情况下如何获取链接相当容易。

首先,您使用已有的代码下载 html,但没有文件名:

import urllib
from bs4 import BeautifulSoup
import re

url = 'https://thewebsitedownload.com' 

text = urllib.urlopen(url).read()

soup = BeautifulSoup(text)
link = soup.find_all(href=re.compile("dropbox"))[0]['href']
print link
filename = 'filetobedownloaded.exe'
urllib.urlretrieve(link, filename)

我是从docs制作的,但尚未对其进行测试,但我认为您明白了。

于 2012-07-04T19:28:52.873 回答