首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >滤波BeautifulSoup

滤波BeautifulSoup
EN

Stack Overflow用户
提问于 2012-08-19 05:25:00
回答 1查看 6.8K关注 0票数 1

我正试图从另一个网页上得到一份学院和他们的网站的名单。

我已经得到输入以显示我想要的每一行的HTML,但是我正在尝试进一步格式化文本。我只想显示学院的名字和那个学院的链接。有什么想法吗?

这是我的密码:

代码语言:javascript
运行
复制
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上得到的一个例子

代码语言:javascript
运行
复制
<div class="views-field-title">
  <span class="field-content">
    <a href="/colleges/college-agriculture-life-sciences">
    <h3>College of Agriculture &amp; Life Sciences</h3>
    </a>
  </span>
</div>
EN

回答 1

Stack Overflow用户

发布于 2012-08-19 06:26:13

下面这些会让你找到你想要的东西。用于此操作的信息在BeautifulSoup文档 (第4版文件)中很容易访问。

代码语言:javascript
运行
复制
for uni in universities:
    link = uni.find("a")
    college_name = link.text
    web_page = link["href"]

对于第一个uni (您的示例):

代码语言:javascript
运行
复制
>>> print web_page
"/colleges/college-agriculture-life-sciences"
>>> print college_name
College of Agriculture &amp; Life Sciences

我将把处理相对/绝对链接和特殊HTML字符作为练习留给您。

这是如何工作的

从您的最近的问题中,我了解到您在从uni对象中提取标记时遇到了困难。universities变量是Tag对象的集合,每个对象都是一个类似字典的对象,可用于访问其子对象。尝试阅读“导航分析树”,以便更好地处理如何使用BeautifulSoup进行解析。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12024415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档