我正试图从另一个网页上获取大学及其网站的列表。
我已经输入了输入以显示我想要的每一行的HTML,但我正在尝试进一步格式化文本。我只想要显示大学名称和该大学的链接。有什么想法吗?
这是我的代码:
url = "http://www.arizona.edu/colleges"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
universities = soup.findAll('span', {'class' : 'field-content'})
for eachuniversity in universities:
print eachuniversity
这是我为eachuniversity
获得的一个例子:
<div class="views-field-title">
<span class="field-content">
<a href="/colleges/college-agriculture-life-sciences">
<h3>College of Agriculture & Life Sciences</h3>
</a>
</span>
</div>
答案 0 :(得分:3)
以下内容将为您提供所需的信息。用于执行此操作的信息可通过BeautifulSoup documentation(version 4 documentation)轻松访问。
for uni in universities:
link = uni.find("a")
college_name = link.text
web_page = link["href"]
对于第一个uni(你的例子):
>>> print web_page
"/colleges/college-agriculture-life-sciences"
>>> print college_name
College of Agriculture & Life Sciences
我会留下处理相对/绝对链接和特殊HTML字符作为练习。
从most recent question我收集到您无法从uni
对象中提取代码。您的universities
变量是Tag
个对象的集合,每个对象都是一个类似字典的对象,可用于访问其子对象。尝试阅读"Navigating the Parse Tree"以更好地处理解析如何与BeautifulSoup一起使用。