Сканер Python находит нужные теги только в первых нескольких div - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь почистить некоторые изображения с сайта покупок (https://www.grailed.com/shop/EkpEBRw4rw), но у меня возникают некоторые проблемы с этим, поскольку списки обновляются по мере прокрутки. Я пытаюсь получить источник изображения в теге HTML ниже :

HTML tags I am trying to retrieve

Теперь код, который я использовал, показан ниже:

from bs4 import BeautifulSoup
from selenium import webdriver

url = 'https://www.grailed.com/shop/EkpEBRw4rw'
driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'html.parser')

listing = soup.select('.listing-cover-photo ')
for item in listing:
    print(item.select('img'))

Проблема в том, что, хотя он находит тег для каждого списка, он может найти тег только для первых 6 списков. Вывод из моего кода показан ниже:

ВЫВОД:

[<img alt="Off-White Off White Caravaggio Hoodie" src="https://process.fs.grailed.com/AJdAgnqCST4iPtnUxiGtTz/cache=expiry:max/rotate=deg:exif/resize=width:480,height:640,fit:crop/output=format:webp,quality:70/compress/https://cdn.fs.grailed.com/api/file/yX8vvvBsTaugadX0jssT"/>]
(...a few more of these...)
[<img alt="Off-White Off-White Arrows Hoodie Black" src="https://process.fs.grailed.com/AJdAgnqCST4iPtnUxiGtTz/cache=expiry:max/rotate=deg:exif/resize=width:480,height:640,fit:crop/output=format:webp,quality:70/compress/https://cdn.fs.grailed.com/api/file/9CMvJoQIRaqgtK0u9ov0"/>]
[]
[]
[]
[]
(...many more empty lists...)

Это сохраняется, даже если цикл по всем страницам в стороне (добавление '? Page = n' к URL) и показывает только первые 6 записей каждой страницы.

1 Ответ

0 голосов
/ 23 апреля 2019

Чтобы очистить атрибуты src тегов <img> на сайте покупок , используя Selenium , вам нужно вызвать WebDriverWait дляvisibility_of_all_elements_located(), и вы можете использовать следующее решение:

...