html - 在 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)
解决方案
使用 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)
推荐阅读
- django - 如何在同一页面中打开链接
- javascript - 片段着色器生成的交互式网格
- c# - 自定义异步可插拔协议多次打开应用程序
- amazon-web-services - AWS Lambda 在约 12 小时后使用带有 EIP 的 NAT 网关失去与 VPC 中 SQS 的连接
- ios - 来自 Pubnub 的消息包含文件名,解码不起作用(Swift)
- tkinter - Tkinter 时间范围
- asp.net - 站点移动到新服务器并出现此错误:无法检索散列密码
- ios - 在 iOS (safari) 上通过 phaser.js 播放视频,无需全屏
- asp.net-core - 如何搜索 Razor 页面视图组件路径?我无法让它们工作,.NET Core 尝试包含不相关的模型
- javascript - 在 Immutable.js 中,我如何合并 2 个集合,但让新值替换旧值