加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 美丽的汤结果缺少部分

发布时间:2020-12-20 12:23:17 所属栏目:Python 来源:网络整理
导读:我正在尝试检索一些 p以下html代码中的标记.这里只是其中的一部分 td class="eelantext" a class="fBlackLink"/a center/center span … /spanbr/br table width="402" vspace="5" cellspacing="0" cellpadding="3" border="0" bgcolor="#ffffff" align="Lef
我正在尝试检索一些< p>以下html代码中的标记.这里只是其中的一部分

<td class="eelantext">
    <a class="fBlackLink"></a>
    <center></center>
    <span> … </span><br></br>
    <table width="402" vspace="5" cellspacing="0" cellpadding="3" 
        border="0" bgcolor="#ffffff" align="Left">
    <tbody> … </tbody></table>
      <!--edstart-->
    <p> … </p>
    <p> … </p>
    <p> … </p>
    <p> … </p>
    <p> … </p>
</td>

你可以找到网页here

我的Python代码如下

soup = BeautifulSoup(page)
div = soup.find('td',attrs={'class': 'eelantext'})
print div
text = div.find_all('p')

但是text变量是空的,如果我打印div变量,除了< p>之外,我有完全相同的html.标签.

解决方法

BeautifulSoup可以使用 different parsers to handle HTML input.这里的HTML输入有点破,默认的HTMLParser解析器不能很好地处理它.

请改用html5lib parser:

>>> len(BeautifulSoup(r.text,'html').find('td',attrs={'class': 'eelantext'}).find_all('p'))
0
>>> len(BeautifulSoup(r.text,'lxml').find('td','html5lib').find('td',attrs={'class': 'eelantext'}).find_all('p'))
22

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读