使用BeautifulSoup解析标签

3
我被一个关于BeautifulSoup的Python编程问题卡住了。
起初,我需要创建一个函数,从网页的源页面中提取所有的

标签。我按照以下方式实现了这个功能:

    from bs4 import BeautifulSoup

    soup=BeautifulSoup(''.join(data))

    def parseUsingSoup(content):
        return soup.findAll('h3')

我试图解析的网站是这个:http://www.auc.nl/news-events/events-and-lectures/events-and-lectures.html?page=1&pageSize=40 它只包含一个h3标签。现在问题要求我扩展我的函数,使其还返回与之相关的所有p标签中的内容。它还要求列出四元组的事件列表,其中给出事件的日期、标题、类型和描述。
我不太知道如何做到这一点。我尝试了各种不同的方法,但没有给我正确的结果。提前感谢您。
1个回答

4

以下是一种获取所有 <h3> 标签下面的 <p> 标签的方法:

from bs4 import BeautifulSoup
import urllib2

content = 'http://www.auc.nl/news-events/events-and-lectures/events-and-lectures.html?page=1&pageSize=40'

soup = BeautifulSoup(urllib2.urlopen(content))

for x in soup.findAll('h3'):
    for y in soup.findAll('p'):
        print y

那么您可以根据需要将这个输出解析成列表。

谢谢!那非常有帮助。我能否从HTML代码中调用事件的时间(以及类型、标题等)?这样我就可以为每个事件单独制作一个字典(然后稍后将它们放入列表中)。 - verdict
是的,看起来你只需要尝试获取不同的标签,直到找到正确的标签为止。对于你评论的第二部分,你可以将结果保存到一个变量中,然后解析该变量。如果需要更详细的答案,请创建一个新问题。 - Stedy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接