首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用BeautifulSoup提取标签中的内容

使用BeautifulSoup提取标签中的内容
EN

Stack Overflow用户
提问于 2011-05-14 10:15:56
回答 4查看 81.2K关注 0票数 35

我想提取内容Hello world。请注意,页面上还有多个<table>和类似的<td colspan="2">

代码语言:javascript
运行
复制
<table border="0" cellspacing="2" width="800">
  <tr>
    <td colspan="2"><b>Name: </b>Hello world</td>
  </tr>
  <tr>
...

我尝试了以下几种方法:

代码语言:javascript
运行
复制
hello = soup.find(text='Name: ')
hello.findPreviousSiblings

但它没有返回任何内容。

此外,我在以下提取My home address时也遇到了问题

代码语言:javascript
运行
复制
<td><b>Address:</b></td>

<td>My home address</td>

我也使用相同的方法来搜索text="Address: ",但是如何导航到下一行并提取<td>的内容呢

EN

回答 4

Stack Overflow用户

发布于 2013-01-10 02:21:06

contents运算符可以很好地从<tag>text</tag>中提取text

<td>My home address</td>示例:

代码语言:javascript
运行
复制
s = '<td>My home address</td>'
soup =  BeautifulSoup(s)
td = soup.find('td') #<td>My home address</td>
td.contents #My home address

<td><b>Address:</b></td>示例:

代码语言:javascript
运行
复制
s = '<td><b>Address:</b></td>'
soup =  BeautifulSoup(s)
td = soup.find('td').find('b') #<b>Address:</b>
td.contents #Address:
票数 37
EN

Stack Overflow用户

发布于 2011-05-14 10:26:53

改用next

代码语言:javascript
运行
复制
>>> s = '<table border="0" cellspacing="2" width="800"><tr><td colspan="2"><b>Name: </b>Hello world</td></tr><tr>'
>>> soup = BeautifulSoup(s)
>>> hello = soup.find(text='Name: ')
>>> hello.next
u'Hello world'

next和previous允许您按照文档元素被解析器处理的顺序在文档元素中移动,而同级方法使用解析树

票数 19
EN

Stack Overflow用户

发布于 2020-11-27 08:51:08

使用以下代码通过python beautifulSoup从html标记中获取提取文本和内容

代码语言:javascript
运行
复制
s = '<td>Example information</td>' # your raw html
soup =  BeautifulSoup(s) #parse html with BeautifulSoup
td = soup.find('td') #tag of interest <td>Example information</td>
td.text #Example information # clean text from html
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5999407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档