如何到达隐藏在验证码后面的mediafire直接链接?

2024-05-26 20:45:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个python程序从互联网上下载一个文件:

 url = "http://download2163.mediafire.com/icum151v51zg/55rll9s5ioshz5n/Alcohol52_FE_2-0-3-6850.exe"
 file_name ='file'
 u = urllib2.urlopen(url)
 f = open(file_name, 'wb')
 buffer = u.read()
 f.write(buffer)
 f.close()

而且工作正常。问题是在这个程序中,用来下载文件的链接不是很昂贵! 我想下载的文件是用mediafire上传的。 我发现这个页面的链接(http://www.mediafire.com/download/55rll9s5ioshz5n/Alcohol52_FE_2-0-3-6850.exe)是共价的,在这个页面上我找到了我放在程序中的链接。事实上,我用鼠标右键点击“下载(6.77MB)”按钮并选择“获得这个链接”,我就获得了我在程序中使用的直接链接:http://download2163.mediafire.com/icum151v51zg/55rll9s5ioshz5n/Alcohol52_FE_2-0-3-6850.exe

但是第二个直接链接-这是我真正需要的直接链接-是可变的!在

我找到了获得这个变量和重要的直接链接的方法:使用第一个和共有链接(http://www.mediafire.com/download/55rll9s5ioshz5n/Alcohol52_FE_2-0-3-6850.exe)我下载了HTML页面,在这个HTML文件中我找到了我需要的直接链接!在

问题是:有时当我的python程序试图下载HTML页面时,它会下载包含直接链接的正确页面,但有时它会下载错误的页面,带有验证码!所以不能建立直接联系。在

我正在寻找一种方法来避免这个验证码,并确保我的python程序总是下载正确的HTML页面,里面有直接链接!在

有什么建议吗?在


如果没有办法的话,有人知道我如何获得一个文件的直接链接,我想上传到互联网上,我想下载我的python程序?在


Tags: 文件程序comhttpurl链接html互联网
1条回答
网友
1楼 · 发布于 2024-05-26 20:45:54

您需要在页面中查找可以用来始终标识链接的内容。例如,download链接位于类为“download link”的div元素中。您可以解析该div的HTML,然后从它的子元素获取链接。还有其他的可能性。例如,您可以在感兴趣的URL中查找某个唯一的常量,并在从页面获取所有链接后使用正则表达式进行选择。在

我强烈建议您查看beauthoulsoup库,它将允许您轻松解析HTML。在

编辑: 好吧,我没有注意到这一点,因为我最初在浏览器中查看页面,但显然mediafire只在页面加载后用javascript填充下载div,这使得获取链接变得更加困难。谢天谢地,他们仍然需要包含下载链接,并使用一个丑陋、可怕的小黑客,我们可以抓住它:

首先,您需要以下URL的正则表达式:http://daringfireball.net/2010/07/improved_regex_for_matching_urls

然后抓取页面内容并用beautifulsoup进行如下解析:

soup = BeautifulSoup(page)
div_tag = soup.find_all(class_="download_link")[0]
script_tag = div_tag("script")[0]
link = re.findall(regex, script_tag.contents[0])[0]

以下是我的全部工作代码:

^{2}$

相关问题 更多 >

    热门问题