Webscraping bs4, не могу понять, как получить результат - PullRequest
1 голос
/ 09 ноября 2019

В настоящее время я пытаюсь очистить значение title = "XFX" от:

<a class="item-brand" href="https://www.newegg.com/XFX/BrandStore/ID-1669">
                <img alt="XFX" class="lazy-img" data-effect="fadeIn" data-src="//c1.neweggimages.com/Brandimage_70x28//Brand1669.gif" src="//c1.neweggimages.com/WebResource/Themes/2005/Nest/blank.gif" title="XFX">
                </img></a>

, в данный момент я использую этот код Python для доступа к нему, но он не может быть найден

brand_container = container.findAll("a", {"class":"item-brand"})
    brand = brand_container[0].title

Понятия не имею, что ставить после brand = brand_container, чтобы оно получило значение title =

1 Ответ

0 голосов
/ 09 ноября 2019

Атрибут title находится под image tag, а не anchor tag. Вы можете использовать find_all или css селектор select

from bs4 import BeautifulSoup
html='''<a class="item-brand" href="https://www.newegg.com/XFX/BrandStore/ID-1669">
                <img alt="XFX" class="lazy-img" data-effect="fadeIn" data-src="//c1.neweggimages.com/Brandimage_70x28//Brand1669.gif" src="//c1.neweggimages.com/WebResource/Themes/2005/Nest/blank.gif" title="XFX">
                </img></a>'''

container=BeautifulSoup(html,'html.parser')
brand_container = container.find_all("a", class_="item-brand")
for brand in brand_container:
    print(brand.find_next('img')['title'])

ИЛИ CSS селектор

for brand in container.select(".item-brand>img"):
    print(brand['title'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...