python-3.x - 我怎样才能获得类似于下面共享的示例的 srcs 中的值?
问题描述
我获取页面中所有链接的代码:
from bs4 import BeautifulSoup
import requests
r = requests.get("http://site-to.crawl")
data = r.text
soup = BeautifulSoup(data)
for link in soup.find_all('a'):
print(link.get('href'))
但是,我确实想要例如两个 src 的内容,如下所示:
"mov_bbb.mp4" and `"mov_bbb.ogg"`
<video id="video1" style="width:600px;max-width:100%;" controls="">
<source src="mov_bbb.mp4" type="video/mp4">
<source src="mov_bbb.ogg" type="video/ogg">
</video>
我如何才能实现这一点,不仅适用于这个例子,而且适用于稍后我将获得 src 的所有视频视频标签。
另一个例子:
<video controls="" src="https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4" poster="https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217" width="620">
</video>
我想要什么https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4
我希望代码适用于示例示例和基本相似的示例,当有标签视频我想要 src 时,它可能直接在同一个 <> 或其子中
解决方案
您可以在解析的 html 中获取标签。然后只需获取这些标签的 src 即可。
试试这个:
for i in range(len(soup.find_all('source'))):
print(soup.find_all('source')[i]['src'])
***编辑
所以我们可以先检查是否有 src 属性。如果没有,它将检查子标签并打印它们的 src。
for video in soup.find_all('video',attrs={'src':True}):
print(video['src'])
for video in soup.find_all('video',attrs={'src':False}):
for i in video.find_all('source'):
print(i['src'])
推荐阅读
- python-3.x - 启动 Spyder 时 easygui_qt 只运行一次
- sap-cloud-sdk - VdmComplex 更改不适用于 PATCH
- robotframework - Robotframework AWS 承担角色
- python - 如何在 Python logging.Formatter 中打印剩余说明符
- html - 图像轮播不会在 Clickfunnel 上居中对齐
- php - 如何使用 laravel 迁移向现有键添加约束
- pdf - pdf-lib.js:有没有办法实现 PDFTextField 的默认值?
- c# - 在 WindowsFormHost 前面设置 wpf 旋转轮元素
- node.js - 无法运行 npm start,它显示 npm ERR!代码生命周期
- sql - 参考另一个表更新 SQL Server 列