王跌宕 发表于 2021-9-1 03:00:23

关于python beautifulsoup库里string属性的问题

请教鱼油们,

我先是用bs4把我获得的html煲了一碗汤soup
然后把soup里面的一个子标签 tr 的所有子标签td装入到一个列表tds
    tds = soup.tr('td')

其中tds打印如下:
<td data-v-68e330ae="">
                        52.0
                  </td>

输入tds.string   打印:
'\n                        52.0\n'

而列表里的tds打印如下:
<td data-v-68e330ae="">
                        上海
                        <!-- --></td>

可当我想使用 tds.string获得td标签里的文本时却返回None

为什么呢鱼油们,我真搞不明白啊呜呜呜{:10_266:}










suchocolate 发表于 2021-9-1 07:28:14

本帖最后由 suchocolate 于 2021-9-1 07:37 编辑

据说节点有子节点时string有时拿不到文本,你换text试试。from bs4 import BeautifulSoup as bs

s = """<td data-v-68e330ae="">
                        上海
                        <!-- --></td>"""
soup = bs(s, 'lxml')
print(soup.td.text)
#print(soup.td.get_text())

不大不小甲鱼 发表于 2021-9-1 15:27:21

6666

ILY39 发表于 2021-9-1 16:15:41

{:10_256:}

王跌宕 发表于 2021-9-1 20:07:30

suchocolate 发表于 2021-9-1 07:28
据说节点有子节点时string有时拿不到文本,你换text试试。

是的,找了一天终于发现了{:10_257:}

O:如果 tag 只有一个 NavigableString 类型子节点,那么这个 tag 可以使用 .string 得到子节点。
O:如果一个 tag 仅有一个子节点,那么这个 tag 也可以使用 .string 方法,输出结果与当前唯一子节点的 .string 结果相同。
O:如果 tag 包含了多个子节点,tag 就无法确定 .string 方法应该调用哪个子节点的内容, .string 的输出结果是 None。

原文地址:https://www.cnblogs.com/gl1573/p/9958716.html

{:10_279:}

王跌宕 发表于 2021-9-1 20:08:50

看来中奖概率还是低了,三个兄弟居然都没有{:10_250:}

某一天 发表于 2021-9-2 02:29:09

楼主千金散尽还复来

trolwy 发表于 2021-9-2 06:53:46

挣鱼币做作业

三刀流.索隆 发表于 2021-9-21 17:22:01

{:5_95:}

邓CX 发表于 2021-9-21 19:49:33

11111

1molHF 发表于 2021-9-22 13:16:06

{:10_256:}

1molHF 发表于 2021-9-22 13:16:52

{:10_256:}

羞稚 发表于 2021-9-24 18:01:48

最佳答案很强

sunwenwu 发表于 2021-9-25 00:57:08

{:10_250:}

平凡之路1314 发表于 2021-9-25 11:27:37

支持楼主

私が 发表于 2021-10-1 18:51:41

支持支持
页: [1]
查看完整版本: 关于python beautifulsoup库里string属性的问题