Web Scraping с использованием BeautifulSoup [alt] [python] - PullRequest
0 голосов
/ 06 мая 2018

Мне дан HTML-код, часть, которая меня особенно интересует, выглядит следующим образом:

<a href="/go/wydarzenia/rozrywka/35826-majowka-w-twierdzy-klodzko? 
termin=265036" class="link with-img"> <img 
src="/go/resources/main/img//download/img- 
14ab4e372df7bd0826c90f429f0e5933/twierdza-przewodnik-jpg.jpg" alt="Majówka w 
Twierdzy Kłodzko" class=""/>

Я знаю, что это выглядит немного грязно, но мне все равно придется иметь дело с этим.
Моя работа состоит в том, чтобы извлечь текст после alt .
Таким образом, в приведенном выше коде вывод должен выглядеть следующим образом

>> Majówka w Twierdzy Kłodzko

Я прочитал здесь много полезной информации о извлечении данных с помощью поиска классов CSS или тегов HTML. Однако я ничего не нашел в alt . Буду признателен за любую помощь.


Вот мой код после некоторых изменений

import requests
from bs4 import BeautifulSoup
url = 'https://www.wroclaw.pl/go/wydarzenia/rozrywka/eventy'
soup = BeautifulSoup(requests.get(url).content, "html.parser")
print(soup.a.img.attrs["alt"])

А вывод говорит, что: AttributeError: объект 'NoneType' не имеет атрибута 'attrs'
Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Вы можете использовать BeautifulSoup:

from bs4 import BeautifulSoup as soup
s = '<a href="/go/wydarzenia/rozrywka/35826-majowka-w-twierdzy-klodzko? termin=265036" class="link with-img"> <img src="/go/resources/main/img//download/img- 14ab4e372df7bd0826c90f429f0e5933/twierdza-przewodnik-jpg.jpg" alt="Majówka w Twierdzy Kłodzko" class=""/>'
alt = soup(s, 'lxml').find('img')['alt']

Выход:

u'Maj\xf3wka w Twierdzy K\u0142odzko'
0 голосов
/ 06 мая 2018

Используйте ключ атрибута, чтобы получить требуемое значение.

Ex:

from bs4 import BeautifulSoup
s = """<a href="/go/wydarzenia/rozrywka/35826-majowka-w-twierdzy-klodzko? 
termin=265036" class="link with-img"> <img 
src="/go/resources/main/img//download/img- 
14ab4e372df7bd0826c90f429f0e5933/twierdza-przewodnik-jpg.jpg" alt="Majówka w 
Twierdzy Kłodzko" class=""/>"""
soup = BeautifulSoup(s, "html.parser")
print(soup.a.img["alt"])    #or print(soup.a.img.attrs["alt"])

Выход:

Majówka w Twierdzy Kłodzko
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...