当前位置: 首页 > 面试题库 >

美丽汤结果缺少零件

百里京
2023-03-14
问题内容

我正在尝试<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>

您可以在这里找到该网页

我的Python代码如下

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

但是text变量为空,如果我打印div变量,除了<p>标签外,我上面的HTML完全一样。


问题答案:

BeautifulSoup可以使用不同的解析器来处理HTML输入。此处的HTML输入有些破损,并且默认的HTMLParser解析器不能很好地处理它。

改用html5lib解析器:

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


 类似资料:
  • 问题内容: 我正在尝试从Google搜索结果中提取链接。检查元素告诉我,我感兴趣的部分具有“ class = r”。第一个结果如下所示: 要提取“ href”,我要做: 但是我意外地得到: 我想要的地方: 属性“ ping”似乎使它感到困惑。有任何想法吗? 问题答案: 发生了什么? 如果您打印响应内容(即),则会看到您得到的HTML完全不同。页面源和响应内容不匹配。 因为内容是动态加载的,所以 不

  • 我试图抓取这个网站:https://www.senate.gov/general/contact_information/senators_cfm.cfm 我的代码: 问题是它实际上并没有到达网站。我在soup var中得到的HTML根本不是正确网页中的HTML。 我不知道从这里去哪里!任何和所有的帮助都将不胜感激。

  • 问题内容: 我正在尝试解析一个网站,并通过BeautifulSoup.findAll获取一些信息,但它并没有全部找到。.我正在使用python3 代码是这个 它只打印其中一半… 问题答案: 不同的HTML解析器对损坏的HTML的处理方式不同。该页面提供了损坏的HTML,解析器对此的处理不佳: 标准库在此特定页面上的麻烦较少: 使用将其转换为您的特定代码示例,您将这样指定解析器:

  • 我试图使用美丽的汤抓取newegg的产品名称、描述、价格和图像。我有以下bs4.element.标签类型,我想从标签中提取“src”链接。以下是我的标签: 我怎样才能提取 从这个标签?我试过了 但我收到了Keyerror。

  • 我试图抓取德国聚会的新闻页面,并将所有信息存储在数据框中(“蟒蛇初学者”)。当我想将整个文本甚至日期存储到数据框中时,只存在一个小问题。似乎只有文本的最后一个元素(p... /p)将被存储在行中。我认为问题的出现是因为循环上的迭代是误导的。

  • 考虑一下这段代码: 它只打印“divTag” 更新: 我基本上想在'a'标签中提取“字符串”值。