2013-03-29 3 views
1

Я застрял с проблемой программирования python относительно BeautifulSoup.Разбор тегов с 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-тегах. Он также запрашивает список событий с четырьмя кортежами, которые дают дату, название, тип и описание события.

Я действительно не знаю, как это сделать. Я пробовал всевозможные вещи, но ничего не дает мне правильных результатов. Заранее спасибо.

ответ

1

Вот один из способов вы можете получить все <p> теги под <h3>:

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