【问题标题】:BeautifulSoup not show tag <a> in tag <div>BeautifulSoup 在标签 <div> 中不显示标签 <a>
【发布时间】:2021-04-06 18:08:32
【问题描述】:

在我做的一些测试中,我注意到 div 标签内的标签 abeautifulsoup 自动将其“翻译”为文本:

<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... 但是现在,(使用 prettify 查看输出)我意识到标签 bs4 让我将其视为 div,而实际上它是一个标签 a!奇怪!!!

BUG???

已解决 我做了一些清理并删除了请求和 urllib3 的所有包......然后我用 apt 重新安装了所有东西,现在可以工作了。 requests 和 urllib3 的包版本分别为:2.12.4-11.19.1-1

【问题讨论】:

    标签: python html parsing beautifulsoup


    【解决方案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)
    

    我得到的输出:

    <a href="....">TEXT</a>
    

    .text 不会显示标签,而只会显示所选标签及其子标签内的文本。您还需要BeautifulSoup 对象才能使用find_all 方法

    【讨论】:

    • 对不起...我写错了...但问题仍然存在。请再读一遍...我更正了帖子
    • 更新:刚才我注意到了……这里还有一个问题。在源代码中有标签 a... 但现在,(使用 prettify 查看输出)我意识到标签 bs4 让我将其视为 div,而实际上它是一个标签 a!奇怪的!!!错误???
    • @vincenzogianfelice 我认为问题不在于 bs4 - 因为它在我使用 python3 时运行良好。如here 中所述,python2 对 bs4 的支持已经停止。如果还想用python2,试试卸载bs4,执行pip2 install beautifulsoup4
    • 其实我已经用pip2安装了最新版本。但是我尝试做其他事情...如果我将这段代码直接粘贴到 beautifulsoup 一切正常,但如果我尝试通过 requests检索文档>,那么“a”标签就不会读给我听...BeautifulSoup(requests.get(url,headers).content, 'lxml')
    • 我已经解决了这个问题。但我不知道如何......我做了一些清理并删除了所有包 python requestsurllib3 ...然后我用 apt 重新安装了所有东西b> 现在一切正常......不要问我如何......但现在一切正常!感谢您的耐心等待和晚安(来自意大利)。
    猜你喜欢
    • 2021-11-22
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多