无法解析 Beautifulsoup 中 </span>text</a> 后面的文本

Can't parse out text that is behind </span>text</a> in Beautifulsoup

我想我已经尝试了所有方法,阅读了糟糕的内容,阅读了 Beautifulsoup4 网站上的文档。我脑子里怎么也缠不上这个东西

那么问题来了:

<a class="ellipsis" href="/aktier/om-aktien.html/5246/investor-a">
<span class="flag small SE"></span>Investor A</a> 
<a class="ellipsis" href="/aktier/om-aktien.html/5247/investor-b">
<span class="flag small SE"></span>Investor B</a>

我只想要/span> "text" <a/>后面的文字。

这是代码:

def scrape(self):
    self.get(const.StockPicks)
    html = self.page_source
    soup = BeautifulSoup(html, "lxml")
    StockPage = soup.find_all("div", class_="orderbookListWrapper")
    StockNameBook = []
    for StockPages in StockPage:

        StockName = StockPages.find_all("a", class_="ellipsis")
        StockNameBook.append(StockName)
        print (StockNameBook)

接下来我可以尝试什么?

text behind /span> "text"a tag 的文本节点。所以你必须 select [a class="ellipsis" ] 然后你可以调用 .get_text() 方法来获取文本节点值 text/string

html='''
<html>
 <body>
  <a class="ellipsis" href="/aktier/om-aktien.html/5246/investor-a">
   <span class="flag small SE">
   </span>
   Investor A
  </a>
  <a class="ellipsis" href="/aktier/om-aktien.html/5247/investor-b">
   <span class="flag small SE">
   </span>
   Investor B
  </a>
 </body>
</html>
'''

from bs4 import BeautifulSoup

soup = BeautifulSoup(html,'lxml')

#print(soup.prettify())

for span in soup.find_all('a',class_="ellipsis"):
    txt = span.get_text(strip=True)
    print(txt)

输出:

Investor A
Investor B