Python 解析非';t标记

Python 解析非';t标记,python,html,beautifulsoup,html-parsing,Python,Html,Beautifulsoup,Html Parsing,我正在用一个网站的html制作一个电子表格。我不知道如何提取未标记数据的信息。例如,我可以编写一个程序来搜索中的文本,以查找大学所在的城市,但圣彼得堡州立大学的名称没有这样的标记。有没有一种方法可以让我使用Python和BeautifulSoup将其标识为大学(比如标识它是未标记文本的第二个实例) 谢谢大家! 俄罗斯 圣彼得堡 国际教育交流理事会,圣彼得堡 圣彼得堡州立大学 如果您知道“查找所有”功能始终位于特定位置,则可以使用该功能。对于您提供的示例 span = soup.div.f

我正在用一个网站的html制作一个电子表格。我不知道如何提取未标记数据的信息。例如,我可以编写一个程序来搜索
中的文本,以查找大学所在的城市,但圣彼得堡州立大学的名称没有这样的标记。有没有一种方法可以让我使用Python和BeautifulSoup将其标识为大学(比如标识它是未标记文本的第二个实例)

谢谢大家!


俄罗斯
圣彼得堡


国际教育交流理事会,圣彼得堡
圣彼得堡州立大学
如果您知道“查找所有”功能始终位于特定位置,则可以使用该功能。对于您提供的示例

 span = soup.div.find_all('span')[2]

将用大学名称指向span标记。

这有点粗糙,这是您打算做的吗

如果这适用于整个页面,请尝试

from bs4 import BeautifulSoup

html = """
<div class="result" style="width:100%;">
  <span class="uppercase bold country-name" style="width:100%;">
        Russia
        <span class="city-names">
         St. Petersburg
        </span>
  </span>
  <br/>
  <span class="bold">
    <a href="http://eap.ucop.edu/OurPrograms/russia/Pages/russian_area_studies_st_petersburg.aspx" target="_blank">
        Russian Area Studies, St. Petersburg - Fall
    </a>
  </span>
  <br/>Council on International Educational Exchange, St. Petersburg
  <br/>St. Petersburg State University
</div>
"""

soup = BeautifulSoup(html, "html.parser")
cities = soup.find_all('div', attrs={'class': 'result'})
for city in cities:
    spans = city.find_all('span')
    for span in spans:
        span.decompose()
    text_you_need = BeautifulSoup(str(city),"html.parser").find('div').text
    university = text_you_need.strip().split('\n')[1].strip()
    print(university)

你能假设大学总是在第二次换行之后吗?
St. Petersburg State University