我想在此页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 & Life Sciences | The University of Arizona, Tucson, Arizona</title>
但我的理想结果是:
College of Agriculture & Life Sciences
我该怎么做?
答案 0 :(得分:2)
.string
属性只为您提供标记文字:
uni_name = soup.title.string
如果您只想使用第一部分,请在|
管道上拆分:
uni_name = soup.title.string.partition('|')[0].strip()
这使用str.partition()
只拆分一次(为了效率),获取结果的第一部分,并删除该结果周围的任何额外空格。
演示:
>>> soup.title
<title>College of Agriculture & 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'
答案 1 :(得分:1)
您可以尝试使用此库(Goose)。
我试图为一些带有beautifulsoup的网站创建我自己的提取器,但后来我意识到Goose完全符合我的需要。