Scrapy не загружает страницу - PullRequest
0 голосов
/ 19 июня 2019

Я использую scrapy, start_url имеет следующую структуру:

https://www.yoox.com/us/men/shoponline/accessories_mc#/dept=men&gender=U&page=1&season=X

Scrapy не загружает страницу:

scrapy shell https://www.yoox.com/us/men/shoponline/accessories_mc#/dept=men&gender=U&page=1&season=X

Возможно, из-за того, что ссылкаотсутствует символ ?.Что не правильно?

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Как сказал @ vezunchik , ваши данные загружаются динамически с помощью JavaScript из другой ссылки.Но вы можете использовать эту ссылку прямо в своем коде: https://www.yoox.com/US/shoponline?dept=men&gender=U&page=1&season=X&clientabt=SmsMultiChannel_ON%2CSizeIsocode_ON%2CNewDelivery_ON

Я нашел ссылку выше, используя вкладку Инструменты разработчика Chrome и Сеть.

0 голосов
/ 21 июня 2019

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

Если вам нужен Splash, проверьте ваши настройки и убедитесь, что вы скопировали их в промежуточное ПО, а также установите параметр SPLASH_URL.

SPLASH_URL = 'http://194.182.69.110:8050'

DOWNLOADER_MIDDLEWARES = {
    'scrapy_splash.SplashCookiesMiddleware': 723,
    'scrapy_splash.SplashMiddleware': 725,
    'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}

SPIDER_MIDDLEWARES = {
    'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}

Вы, вероятно, должны принять gangabass ответ, так как он решил вашу проблему без необходимости какой-либо обработки JavaScript. Который всегда является правильным ответом, не используйте JS без крайней необходимости.

Такие вещи, как всплеск или селен, должны ВСЕГДА быть последней линией защиты от определенных веб-сайтов. Например, на сайте ASP может быть выгоднее просто использовать Selenium, чем пытаться выполнить обратный инжиниринг их запросов. Это если им не нужны большие объемы данных. Selenium и Splash не очень хорошо подходят для очистки, поэтому их следует использовать только в случае крайней необходимости. Почти каждый веб-сайт может быть очищен без обработки JavaScript, если вы анализируете запросы. Большинство веб-сайтов используют свой собственный API, который не документирован для обслуживания внешнего интерфейса их веб-сайта.

Ответ на обновленный вопрос о загрузке страницы оболочкой Scrapy. Ваш URL-адрес сформирован неправильно или неправильно сформирован. Это ваша конечная точка URL. Вы можете отправить параметры, начиная с вопросительного знака. https://www.yoox.com/us/men/shoponline/accessories_mc#/

Это аргументы, которые вы хотите отправить на URL. Это начинается с? для обозначения начала аргументов и амперсанда или & для добавления следующего аргумента. ? DEPT = мужчины и пол = U & страница = 1 & сезон = X

Там должно быть? прямо перед долгом. ? DEPT = мужчины и пол = U

Опять же, вам, вероятно, не нужно использовать Splash для этого. Я бы оставил комментарии, но мне пока не хватило REP. Я добавил ответ, чтобы отразить текущую беседу.

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