【问题标题】:I want to get values inside the span ex: 3 6 9 7 5 8 2 4 6 7 1 2 8 7 7 2 4 8 0 9我想在范围内获取值 ex: 3 6 9 7 5 8 2 4 6 7 1 2 8 7 7 2 4 8 0 9
【发布时间】:2021-02-15 17:40:29
【问题描述】:
<div id="digits" class="digits">
  <span class="digits_moved_down">3</span>
  <span class="digits_moved_down">6</span>
  <span class="digits_moved_down">9</span>
  <span class="digits_moved_up">7</span>
  <span class="digits_moved_down">5</span>
  <span class="digits_moved_down">8</span>
  <span class="digits_moved_down">2</span>
  <span class="digits_moved_up">4</span>
  <span class="digits_moved_down">6</span>
  <span class="digits_moved_up">7</span>
  <span class="digits_moved_down">1</span>
  <span class="digits_moved_down">2</span>
  <span class="digits_moved_down">8</span>
  <span class="digits_moved_up">7</span>
  <span class="digits_moved_up">7</span>
  <span class="digits_moved_down">2</span>
  <span class="digits_moved_up">4</span>
  <span class="digits_moved_up">8</span>
  <span class="digits_moved_up">0</span>
  <span class="digits_moved_down">9</span>

我想在范围内获取值 ex: 3 6 9 7 5 8 2 4 6 7 1 2 8 7 7 2 4 8 0 9

  • 列表项

【问题讨论】:

标签: python selenium beautifulsoup


【解决方案1】:

要获得list 的输出,请尝试使用CSS 选择器选择以digits_moved 开头的类名:

from bs4 import BeautifulSoup


soup = BeautifulSoup(your_html, 'html.parser')

result = [tag.text for tag in soup.select('.digits [class^="digits_moved"]')]

print(result)

输出:

['3', '6', '9', '7', '5', '8', '2', '4', '6', '7', '1', '2', '8', '7', '7', '2', '4', '8', '0', '9']

【讨论】:

    【解决方案2】:

    这应该对你有帮助:

    from bs4 import BeautifulSoup
    
    html = """
    <div id="digits" class="digits">
      <span class="digits_moved_down">3</span>
      <span class="digits_moved_down">6</span>
      <span class="digits_moved_down">9</span>
      <span class="digits_moved_up">7</span>
      <span class="digits_moved_down">5</span>
      <span class="digits_moved_down">8</span>
      <span class="digits_moved_down">2</span>
      <span class="digits_moved_up">4</span>
      <span class="digits_moved_down">6</span>
      <span class="digits_moved_up">7</span>
      <span class="digits_moved_down">1</span>
      <span class="digits_moved_down">2</span>
      <span class="digits_moved_down">8</span>
      <span class="digits_moved_up">7</span>
      <span class="digits_moved_up">7</span>
      <span class="digits_moved_down">2</span>
      <span class="digits_moved_up">4</span>
      <span class="digits_moved_up">8</span>
      <span class="digits_moved_up">0</span>
      <span class="digits_moved_down">9</span>
    """
    soup = BeautifulSoup(html,'html5lib')
    
    spans = soup.find('div', class_ = "digits").find_all('span')
    
    [print(span.text) for span in spans]
    

    输出:

    3
    6
    9
    7
    5
    8
    2
    4
    6
    7
    1
    2
    8
    7
    7
    2
    4
    8
    0
    9
    

    如果要将所有数字放在一行中,请将最后一行替换为:

    [print(span.text, end = " ") for span in spans]
    

    输出:

    3 6 9 7 5 8 2 4 6 7 1 2 8 7 7 2 4 8 0 9 
    

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 2022-10-08
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多