2014-11-08 4 views
0

Я соскоб с Python использованием BeautifulSoapсодержание Скрип внутри DIV - BeautifulSoup

Я должен очистить текст внутри DIV

<div class="map-address"> 
    O'Riordan Street,    
    Mascot 2020 NSW Australia, 
    (Corner Robey Street) 
</div> 

У меня есть этот код

print (soup.select('div.map-address')) 

Но я получаю это выход

[<div class="map-address"> 
    O'Riordan Street,    
    Mascot 2020 NSW Australia, 
    (Corner Robey Street) 
</div>] 

Я также попытался

print (soup.select('div.map-address').text) 
# Error ... no attribute named text 
+0

Downvotes принимаются, но с некоторыми пояснениями – Umair

ответ

0

Я решил его:

if not soup.select('div.map-address'): 
    print ("No Address") 
else: 
    print (hotel_page_soup.select('div.map-address')[0].text) 
1

насчет

print (soup.select('div.map-address')[0].get_text().strip()) 

Помните, что select возвращает вам список. Вот почему вы видите [] вокруг него, когда вы печатаете его, а также почему вы получаете сообщение об ошибке при попытке прочитать свойство text (вы запрашиваете свойство text этого списка).

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

Не очень, но это работает.

+0

спасибо за 'полоской()' M РНР разработчика, но кодирования впервые в Python – Umair

2

Вы могли бы просто использовать это,

>>> for i in soup.select('div.map-address'): 
    print(i.string) 



    O'Riordan Street,    
    Mascot 2020 NSW Australia, 
    (Corner Robey Street) 

Через CSS selectors и список понимания.

>>> print ([i.text for i in soup.select('div.map-address')][0]) 

soup.find. Я это явным образом расскажу, каково будет значение атрибута класса.

>>> print([i.string for i in soup.find('div', class_='map-address')][0]) 

    O'Riordan Street,    
    Mascot 2020 NSW Australia, 
    (Corner Robey Street) 
+0

У меня есть только один DIV так почему я должен использовать цикл – Umair

+0

Петля хорошо обрабатывает если есть 0 или более 1 'divs'. Может быть, не сейчас, но вы никогда не узнаете в будущем. –

Смежные вопросы