我需要从维基百科页面的某个部分收集文本,并将其放入一个字符串变量中。我可以相对容易地找到正确的文本,但是我不知道如何将它放入字符串变量中。
到目前为止我的代码是:
with open('uottawa_wiki.html', 'rb') as infile:
html_content = infile.read()
soup = BeautifulSoup(html_content, 'html.parser')
soup = soup.body
campus_subsection = soup.find(id='Campus')
campus_subsection_siblings = campus_subsection.find_parent().find_next_siblings()
for sibling in campus_subsection_siblings:
if sibling.name == 'p':
print(sibling.get_text())
else:
break这就是它的输出,非常完美:
大学的主要校区位于桑迪山(C Te)附近。主校区北临ByWard市场区,东邻桑迪希尔住宅区,西南邻尼古拉斯街,紧邻大学西半部的Rideau运河。截至2010至2011学年,主校区占地35.3公顷(87英亩),尽管该校拥有并管理着全市的其他房产,这使得该校的总占地面积达到了42.5公顷(105英亩)--主校区在1856年最终落户前搬了两次。当该机构最初成立时,校园位于圣母院大教堂的旁边。1852年,随着空间成为一个主要问题,校园搬到了一个现在位于加拿大国家美术馆对面的地方。1856年,该机构搬到了现在的地方。
这所大学的建筑年龄不等,从1893年的劳里尔大学(1893年)到2011年的120个大学(社会科学学院,2012年)- 2011至2012学年,建筑的平均年龄为63.32,大学拥有和管理了30座主要建筑,806个研究实验室,301个教学实验室,257个教室和研讨会室。4主校区分为旧的桑迪山校区和2007年购买的里斯校区。虽然李校区不毗邻桑迪山,但它是学校地图上主校区的一部分。34李校园在桑迪山步行距离之内,原来是阿尔冈金学院拥有的一个卫星校园。
但是,我需要所有这些文本,就像它一样(换行和所有)在一个字符串变量中。我不知道该怎么做。
发布于 2021-03-28 01:32:07
只需将其附加到循环中的列表中,然后"\n".join():
paragraphs = []
for sibling in campus_subsection_siblings:
if sibling.name == 'p':
paragraphs.append(sibling.get_text())
else:
break
full_text = "\n".join(paragraphs)https://stackoverflow.com/questions/66837622
复制相似问题