2009-12-16 8 views
0

Рабочий код: Google dictionary lookup via python and beautiful soup -> просто выполните и введите слово.Извлечь данные из списка веб-сайтов без лишних тегов

Я довольно просто извлек первое определение из определенного элемента списка. Однако, чтобы получить простые данные, мне пришлось разбить мои данные при разрыве строки, а затем удалить ее, чтобы удалить лишний тег списка.

Мой вопрос в том, есть ли способ извлечения данных, содержащихся в определенном списке, без выполнения описанных выше манипуляций с строкой - возможно, функция в красивом супе, которую я еще не видел?

Это соответствующий раздел кода:

# Retrieve HTML and parse with BeautifulSoup. 
    doc = userAgentSwitcher().open(queryURL).read() 
    soup = BeautifulSoup(doc) 

# Extract the first list item -> and encode it. 
    definition = soup('li', limit=2)[0].encode('utf-8') 

# Format the return as word:definition removing superfluous data. 
    print word + " : " + definition.split("<br />")[0].strip("<li>") 
+0

Итак ... вы хотите очистить сайт? – marcc

+0

Хорошо, это то, что делает мой код. – torger

+0

Я понятия не имею, что такое красивое мыло, но я не могу помочь, но улыбаюсь его аббревиатуре –

ответ

1

Я думаю, что вы ищете FindAll (текст = True), это будет извлекать текст из тегов

definitions = soup('ul')[0].findAll(text=True) 

будет возвращать ист от всего содержимого текста, разбитого на границах тегов