用BeautifulSoup解析标签

问题描述:

我被一个关于BeautifulSoup的python编程问题卡住了。用BeautifulSoup解析标签

首先,我需要创建一个函数,从网页的源页面提取所有标记。我这样做如下:

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标签内相关的所有内容。它还要求提供四个元组的事件列表,列出事件的日期,标题,类型和描述。

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

这里有一种方法,你可以得到所有的<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 

然后你就可以在您认为合适这个输出解析成一个列表。

+0

谢谢!这非常有帮助。是否有可能从HTML代码中调用事件的时间(以及类型,标题等)?这样我可以为每个事件单独制作字典(然后再将它们放入列表中)? – verdict

+0

是的,你似乎只需要尝试获取不同的标签,直到找到合适的标签为止。对于评论的第二部分,可以将结果保存到变量中,然后解析该变量。有关更详细的答案,请创建一个新问题。 – Stedy