繁体   English   中英

使用BeautifulSoup提取网页标题中的部分文本

[英]To use BeautifulSoup to extract parts of texts in webpage title

我想提取此页面上的标题文本http://www.arizona.edu/colleges/college-agriculture-life-sciences

这是我到目前为止的代码:

from bs4 import BeautifulSoup
import re
import urllib2

url = "http://www.arizona.edu/colleges/college-agriculture-life-sciences"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())

uni_name=soup.title

print uni_name

但是结果是:

<title>College of Agriculture &amp; Life Sciences | The University of Arizona, Tucson, Arizona</title>

但是我理想的结果是:

College of Agriculture & Life Sciences

我怎样才能做到这一点?

.string属性仅给您标记文本:

uni_name = soup.title.string

如果只想使用第一部分,请在|拆分。 管:

uni_name = soup.title.string.partition('|')[0].strip()

它使用str.partition()仅拆分一次(以提高效率),获取结果的第一部分,并删除该结果周围的所有多余空格。

演示:

>>> soup.title
<title>College of Agriculture &amp; Life Sciences | The University of Arizona, Tucson, Arizona</title>
>>> soup.title.string
u'College of Agriculture & Life Sciences | The University of Arizona, Tucson, Arizona'
>>> soup.title.string.partition('|')[0].strip()
u'College of Agriculture & Life Sciences'

您可以尝试使用该库( Goose )。

我试图用beautifulsoup为一些网站创建自己的提取器,但是后来我意识到Goose确实可以满足我的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM