首页 > 解决方案 > 在 python 上自动从站点恢复链接

问题描述

为了减轻我的程序并使其易于使用,我创建了一个集中所有功能的 exe,包括各种应用程序的下载及其安装。但我面临的问题是链接是动态的(下载页面的链接是固定的,但不是下载链接)。那么如何从固定链接中获取页面上的第二个链接呢?

例如,这个链接“https://anonfiles.com/D031ebu3uf/untitled.95_png”是固定的,我想自动恢复非固定链接存储在

<a target="_blank" type="button" id="download-url" class="btn btn-primary btn-block" href="https://cdn-31.anonfiles.com/D031ebu3uf/91f535ad-1619920351/untitled.95.png"> Download (365 KB)a></a>

代码:

url = 'https://anonfiles.com/D031ebu3uf/untitled.95_png' 
r = requests.get(url, allow_redirects=True) 
open('page.html', 'wb').write(r.content)

标签: htmlpython-3.xbeautifulsouppython-requests

解决方案


使用 bS4 和请求。下载并解析html。使用元素的 id 来定位它,然后提取 href 属性:

import requests
from bs4 import BeautifulSoup as bs

r = requests.get('https://anonfiles.com/D031ebu3uf/untitled.95_png')
soup = bs(r.content, 'lxml')
link = soup.select_one('#download-url')['href']
print(link)

推荐阅读