Как сканировать Python, пока веб-сайт заблокировал содержимое, которое нельзя сканировать? - PullRequest
1 голос
/ 05 марта 2020

Я очень новичок в Python и пытался ползти, используя BeautifulSoup. И попытался сканировать веб-сайт для сбора информации о продукте.

pr_url = soup.findAll("li", {"class", "_3FUicfNemK"})
pr_url

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

Итак, я подумал, что хост заблокировал область продукта, которую нельзя сканировать. Потому что каждый элемент, кроме области, crawl-able.

Знаете ли вы, как сканировать эту заблокированную область? URL сайта: https://shopping.naver.com/living/homeliving/category?menu=10004487&sort=POPULARITY

Спасибо за ваши комментарии заранее!

1 Ответ

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

Обратите внимание, как при первой загрузке страницы загружается схема сайта, но продукты загружаются некоторое время? Это связано с тем, что сайт запрашивает остаток контента для загрузки в фоновом режиме. Этот контент не заблокирован, он просто загружается позже:)

2 варианта здесь imo ..

1) Выясните фоновый запрос и передайте его в beautifulsoup. Используя вкладку Chrome dev tools network, я вижу, что запрос на продукты ...

https://shopping.naver.com/v1/products? n c = 1583366400000 & subVertical = HOME_LIVING & page = 1 & pageSize = 10 & рода = ПОПУЛЯРНОСТЬ и фильтр = ALL & displayType = CATEGORY_HOME & includeZzim = верно и includeViewCount = верно и includeStoreCardInfo = истина & includeStockQuantity = ложь и includeBrandInfo = ложь и includeBrandLogoImage = ложь и includeRepresentativeReview = ложь и includeListCardAttribute = ложь и includeRanking = ложь и includeRankingByMenus = ложь и includeStoreCategoryName = ложь и menuId = 10004487 & standardSizeKeys = & standardColorKeys = & attributeValueIds = & attributeValueIdsAll = & сертификации = & menuIds = & includeStoreInfoWithHighRatingReview = ложь

Должен быть в состоянии угадать изменения в строке запроса и использовать их.

2) Используйте такой инструмент, как Selenium, который взаимодействует с браузером и выполнит для вас любой JavaScript, чтобы вы не нужно выяснять эту сторону вещей. Если вы новичок в этой области, то здесь вам может не понадобиться изучать веб-технологии.

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