Вы можете напрямую передать желаемый идентификатор div
в приведенном ниже коде;
soup.find("div", {"id": "id-you-want"})
Это хорошо работает, когда вы хотите div
внутри div
Или
Вы даже можете использовать это,
soup.find_all('div')
Это даст вам список всех div
.Затем вы можете отфильтровать div
, который вы хотите.
Edit ::
, проанализировав веб-сайт, мы видим, что он загружает элементы (элементы) динамически и, возможно, этоэто делается с помощью JavaScript и некоторых запросов XHR.
Решение
Эта проблема может быть решена, если вы используете scrapy
или selenium
, так как они используют веб-драйвер, так чтобыло бы легко отказаться от таких веб-сайтов, используя их вместо BeautifulSoup
.
. Следующий возможный подход может состоять в том, чтобы найти URL-адреса (XHR / API), которые веб-сайт вызывает для получения элементов.
Примечание. Скоро я обновлю URL-адрес
Изменить 2:
Запрос
https://www.instacart.com/v3/containers/sprouts/search_v3/milk?source=web&cache_key=38e8f7-7370-t-35b&per=50&tracking.items_per_row=5&tracking.source_url=undefined&tracking.autocomplete_prefix=&tracking.autocomplete_term_impression_id=&tracking.search_bar_impression_event_id=
Это дает response
содержащийэлементы в формате json
.Вы можете удалить свои элементы из этого.
Невозможно добавить ответ, так как он большой по размеру, и моя вкладка Google Chrome начинает зависать LOL.Но я проверил