【问题标题】:BeautifulSoup - find_all .textBeautifulSoup - find_all .text
【发布时间】:2025-12-14 12:45:02
【问题描述】:

我正在尝试使用 BeautifulSoup

for tag in soup.find_all('td', 
    attrs= {'class': "txtd hidden-phone mobile-f12 stack-mobile"}):
    print(tag)

输出是

<td class="txtd hidden-phone mobile-f12 stack-mobile"><a href="/btc/address/16P54KtKHTgkc9d4UQFZf81iv99z41mCsn">16P54KtKHTgkc9d4UQFZf81iv99z41mCsn</a><br/><a href="/btc/address/13ApArvHxx1ATNZ3AtMbvi7AB3MbT1nns9">13ApArvHxx1ATNZ3AtMbvi7AB3MbT1nns9</a><br/></td>

UPD:print(tag.text) 给了我一个完整的文本,但没有空格,我该如何拆分它?

【问题讨论】:

  • 您要求所有具有特定属性的标签,并且您得到了它们。究竟是什么让您感到困惑?
  • 我稍微编辑了一个问题,现在它不会让我感到困惑

标签: python beautifulsoup


【解决方案1】:

16P54KtKHTgkc9d4UQFZf81iv99z41mCsn
13ApArvHxx1ATNZ3AtMbvi7AB3MbT1nns9

您是否尝试过迭代 tags.text

类似的,

for text_value in tags.text:
    print(text_value)

【讨论】:

  • 我只在每行中得到一个 1 符号。实际上,tag.text 给了我一个完整的文本,但没有空格,我一定错过了
  • 大多数比特币地址都是 34 个字符的长度?如果您的情况是这样,那么您可以将整个文本分成 2 个字符串,每个字符串 34 个字符?
  • 是的,我想过,但有些人也可以是 27-34 岁
  • 我想我没有,我该怎么做?
【解决方案2】:

您不需要.text(它是标签中所有字符串的串联)。你需要.strings:

for tag in soup.find_all('td', 
    attrs= {'class': "txtd hidden-phone mobile-f12 stack-mobile"}):
    print(list(tag.strings))

【讨论】: