【问题标题】:Parsing tags with BeautifulSoup使用 BeautifulSoup 解析标签
【发布时间】:2013-03-20 03:43:33
【问题描述】:

我遇到了关于 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-tags 中返回与其相关的所有内容。它还要求提供一个包含四个元组的事件列表,这些元组给出事件的日期、标题、类型和描述。

我真的不知道该怎么做。我尝试了各种不同的东西,但没有什么能给我正确的结果。提前谢谢你。

【问题讨论】:

    标签: python html parsing tags beautifulsoup


    【解决方案1】:

    这是获取<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 代码中调用事件的时间(以及类型、标题等)?这样我就可以为每个事件分别制作一个字典(然后将它们放在一个列表中)?
    • 是的,您似乎只需要尝试获取不同的标签,直到找到合适的标签。对于评论的第二部分,您可以将结果保存到变量中,然后解析该变量。如需更详细的答案,请创建一个新问题。