[英]BeautifulSoup not show tag <a> in tag <div>
在我做的一些测试中,我注意到div标签内的标签a , beautifulsoup自动将其“翻译”为文本:
<div class='a'>
<a href='....'>TEXT</a>
<i .....
</div>
当我使用命令find_all('div', {'class': 'a'})
搜索div标签并尝试打印结果div.a
时,bs4 显示值None ...但如果我尝试使用print div.text
bs4 仅显示TEXT而不是标签a )。
这是部分代码:
soup = BeautifulSoup(html, 'lxml')
data=soup.find_all('div', {'class' : 'a'})
for div in data:
print div.a
$ None
为什么?
更新:刚才我注意到......这是另一个问题。 在源代码中有标签a ...但是现在,(看到带有美化的 output)我意识到标签 bs4 让我将其视为div ,而实际上它是标签a ! 奇怪的!!!
漏洞???
解决了我做了一些清理并删除了请求和urllib3的所有包......然后我用apt重新安装了所有东西,现在可以工作了。 requests 和 urllib3 的包版本分别为: 2.12.4-1和1.19.1-1
我无法复制您的问题,但是您正在使用的 HTML 中有一个错字: clas='a'
应该是class='a'
。
我使用的代码:
from bs4 import BeautifulSoup
html = '''<div class='a'>
<a href='....'>TEXT</a>
<i> .....</i>
</div>'''
soup = BeautifulSoup(html, 'html.parser')
data = soup.find_all('div', {'class': 'a'})
for div in data:
print (div.a)
我得到的 output:
<a href="....">TEXT</a>
.text
不会显示标签,而只会显示所选标签及其子标签内的文本。 您还需要BeautifulSoup
object 才能使用find_all
方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.