Beautifulsoup скрести не показывая все - PullRequest
1 голос
/ 02 марта 2020

Я пытаюсь получить тег img из первого изображения, чтобы получить ссылку на изображение. Когда я очищаю сайт с BeautifulSoup, там нет тега img (на рисунке 2).

The html that I want to scrape

Scraped with beautifulsoup

enter image description here

Я не понимаю, почему на каждом сайте есть тег img, а Beautifulsoup - нет.

1 Ответ

1 голос
/ 02 марта 2020

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

Например, если вам пришлось щелкнуть раскрывающееся меню или стрелку «Далее», чтобы просмотреть изображение на веб-сайте, возможно, он выполняет новый запрос для этого изображения и обновляет html на сайте.

Другая проблема может быть JavaScript. Веб-сайты обычно имеют код JavaScript, который запускается после первой загрузки страницы. Затем Javascript делает дополнительные запросы на обновление элементов на странице.

Чтобы увидеть, что происходит на сайте, в браузерах go на сайте нажмите F12. Go на вкладку Сеть и перезагрузите страницу. Вы увидите все URL, которые запрашиваются.

Если вам нужно получить данные, которые загружаются по Javascript запросам, попробуйте использовать Selenium.

ОБНОВЛЕНИЕ

Я зашел на веб-сайт, который вы опубликовали, и вытащил только html, используя следующий код.

import requests
page = requests.get("https://auburn.craigslist.org/search/sss?query=test")
print(page.text)

Запросы возвращают html, который вы бы получить до выполнения любых Javascript и других запросов. Вы можете видеть это здесь

URL изображения также не в этом. Это означает, что в начальном запросе изображение html не возвращается. То, что мы видим, - это теги данных, см. Строку 2192 пастбина. Они обычно используются JavaScript, чтобы делать дополнительные запросы, чтобы он знал, какие изображения go и получить.

Результат: искомые теги img отсутствуют в html, возвращенном по вашему запросу. Здесь вам поможет Selenium или выяснит, как javascript использует эти идентификаторы данных, чтобы определить, какие изображения запрашивать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...