【问题标题】:Getting specific span tag text in python (BeautifulSoup)在 python (BeautifulSoup) 中获取特定的 span 标签文本
【发布时间】:2021-08-21 20:20:17
【问题描述】:

我在 python3 上使用 BeautifulSoup 从 MyAnimeList 中抓取一些信息,并试图获取有关节目“状态”的信息,但无法访问它。

这里是html:

<h2>Information</h2>
    <div>
        <span class="dark_text">Type:</span>
        <a href="https://myanimelist.net/topanime.php?type=movie">Movie</a>
    </div>
    <div class="spaceit">
        <span class="dark_text">Episodes:</span>
        1
    </div>
    <div>
        <span class="dark_text">Status:</span>
        Finished Airing
    </div>

所有这些也包含在另一个 div 标记中,但我只包含了我想要抓取的 html 部分。澄清一下,我想获得包含在“状态”中的文本“完成播出”。

这是我到目前为止的代码,但我不确定这是否是最好的方法或从这里去哪里:

Page_soup = soup(Page_html, "html.parser")
extra_info = Page_soup.find('td', attrs={'class': 'borderClass'})
span_html = extra_info.select('span')
for i in range(len(span_html)):
    if 'Status:' in span_html[i].getText():

任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: html python-3.x web-scraping beautifulsoup


    【解决方案1】:

    要使用"Status:" 获取&lt;span&gt; 旁边的文本,您可以使用:

    from bs4 import BeautifulSoup
    
    html_doc = """
    <h2>Information</h2>
        <div>
            <span class="dark_text">Type:</span>
            <a href="https://myanimelist.net/topanime.php?type=movie">Movie</a>
        </div>
        <div class="spaceit">
            <span class="dark_text">Episodes:</span>
            1
        </div>
        <div>
            <span class="dark_text">Status:</span>
            Finished Airing
        </div>
    """
    
    soup = BeautifulSoup(html_doc, "html.parser")
    txt = soup.select_one('span:-soup-contains("Status:")').find_next_sibling(text=True)
    print(txt.strip())
    

    打印:

    Finished Airing
    

    或者:

    txt = soup.find("span", text="Status:").find_next_sibling(text=True)
    print(txt.strip())
    

    【讨论】:

    【解决方案2】:

    另一种解决方案(也许):

    f = soup.find_all('span',attrs={'class':'dark_text'})
    for i in f:
         if i.text == 'Status:':
             print(i.parent.text)
    

    并将“状态:”更改为您想要查找的任何其他内容。 希望我能帮上忙!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-29
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多