python - 为什么我在使用 BeautifulSoup.find_all 函数时添加了 '/' 字符?
问题描述
我试图从这样的 HTML 页面中查找图像标签:
<img src="../img/gifts/img1.jpg">
<img src="../img/gifts/img1.jpg">
ETC....
但是当我使用 Web Scraping 2 中的这段代码时 - 作者:Ryan Mitchell
from bs4 import BeautifulSoup
import re
html = urlopen('http://www.pythonscraping.com/pages/page3.html')
bs = BeautifulSoup(html,'html.parser')
images = bs.find_all('img',{'src':re.compile('\.\.\/img\/gifts/img.*\.jpg')})
我收到的标签列表如下所示:
[<img src="../img/gifts/img1.jpg"/>,
<img src="../img/gifts/img2.jpg"/>,
<img src="../img/gifts/img3.jpg"/>,
<img src="../img/gifts/img4.jpg"/>,
<img src="../img/gifts/img6.jpg"/>]
我看到每个标签的末尾都有一个额外的'/'字符?有人可以为我解释一下吗?非常感谢
解决方案
在 HTML 中,没有结束标签的标签以/>
. 这在大多数 HTML 版本中是可选的,除了 XHTML 是强制性的,这是一种很好的做法。Beautifulsoup API 会自动添加这个来美化解析后的 DOM。
推荐阅读
- node.js - SyntaxError:意外的令牌':'(冒号)打字稿webpack
- sql - 在 Excel 中执行存储过程时将开始和结束日期参数设置为单元格引用
- amazon-web-services - 如何在 AWS ECS 任务定义中配置日志
- c - 将 strcpy 与字符串文字数组一起使用
- angular - 在 Angular 中下载文件
- python - 将 numpy 对象数组转换为日期时间时得到幻像'b'
- python - 打开函数模块中的语法无效
- java - 用 videoview 播放视频
- javascript - React useEffect 变量未在函数外部定义
- google-deployment-manager - 是否存在处理 Google Cloud Platform 部署管理器文件的好工具?