Пищу парсер на Python 2.7, используя BeautifulSoup 4. Возникла трудность.
Извлек я все элементы
со страницы.
for p in allPosts: postIMG = p.find_all('img')
В итоге получилось:
<img alt="Название" data-lazy="https://site.com/a/1.jpg" itemprop="image" src="/static/assets/i/common/no-image/160x90.png"/> <img alt="Название 2" data-lazy="https://site.com/a/2.jpg" itemprop="image" src="/static/assets/i/common/no-image/160x90.png"/>
- Как обратится к тексту? Можно как-то через точку?
postIMG.alt
? Или как лучше? - Как красивее всего извлечь урл картинки?
Анонимный пользователь Изменен статус публикации
find_all
возвращает список объектов класса bs4.element.Tag
и к аттрибутам элемента можно обратиться через словарь attrs
:
for p in allPosts: postIMG = p.find_all('img') print postIMG[0].attrs['alt'] print postIMG[0].attrs['src']
Если картинка в посте одна, то удобнее использовать метод find
, вместо find_all
:
for p in allPosts: postIMG = p.find('img') print postIMG.attrs['alt'] print postIMG.attrs['src']