Реакция Scrapy отличается от веб-браузера - исключает вращающийся код карусели изображений - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь очистить изображения веб-камеры с этого сайта: https://bridgerbowl.com/weather/webcams. Изображения находятся во вращающейся карусели изображений.

Мой вопрос: как выбрать URL-адрес изображения из ответа scrapy, если URL-адреса отсутствуют? Тем не менее, URL-адреса появляются в инструментах Chrome, когда я проверяю код.

У меня нет проблем с чисткой изображений. Например, я могу загрузить https://bridgerbowl.com/webcam/Sunnyside.jpg напрямую без каких-либо проблем.

Однако я хочу выбрать изображения из html, а не загружать их напрямую. Когда я загружаю страницу в Chrome, я вижу код, который мне нужно выбрать в элементах - это вращающаяся карусель изображений, которая меняет изображение каждые несколько секунд. Однако, когда я go в Сеть> веб-камеры> Отклик в Chrome, код карусели вращающегося изображения отсутствует. Scrapy возвращает этот точный код, найденный в разделе Chrome Сеть> веб-камеры> Ответ. В нем отсутствует код изображения.

Вот код ответа, где изображения должны быть найдены в scrapy и Chrome в сети> веб-камеры> Ответ:

<h1><span class="cap">W</span>ebcams</h1>

<section class="border-bottom">
    <h3 class="subheader">Base Area</h3>
    <webcam-slider area="Base Area"></webcam-slider>
</section>

<section class="border-bottom">
    <h3 class="subheader">Mid Mountain & Alpine Area</h3>
    <webcam-slider :areas="['Mid-Mountain','Upper-Mountain']"></webcam-slider>
</section>

<section class="border-bottom">
    <h3 class="subheader">Ridge & Schlasman Lift</h3>
    <webcam-slider :areas="['Ridge','Slushman\'s']"></webcam-slider>
</section>

Вот раздел кода, в котором я хочу выбрать изображения, найденные в Chrome Элементах:

<div class="swiper-wrapper" style="transition-duration: 0ms;">

     <div class="swiper-slide swiper-slide-duplicate" data-swiper-slide-index="6" style="width: 740px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;">
           <img src="https://bridgerbowl.com/webcam/BunnyHut.cropped.jpg" alt="Beginner Area" class="caption"> <p class="swiper__caption"><strong>Beginner Area</strong></p></div>

     <div class="swiper-slide" data-swiper-slide-index="0" style="width: 740px; opacity: 1; transform: translate3d(-740px, 0px, 0px); transition-duration: 0ms;">
           <img src="https://bridgerbowl.com/webcam/BaseArea.cropped.jpg?r=0.10260012831472154" alt="Base Area" class="caption"> <p class="swiper__caption"><strong>Base Area</strong></p></div>

     <div class="swiper-slide" data-swiper-slide-index="1" style="width: 740px; opacity: 1; transform: translate3d(-1480px, 0px, 0px); transition-duration: 0ms;">
           <img src="https://bridgerbowl.com/webcam/ParkingLot.cropped.jpg?r=0.94811916932017" alt="Parking Lot" class="caption"> <p class="swiper__caption"><strong>Parking Lot</strong></p></div>

В скрапе setting.py Я включил следующее:

DOWNLOADER_MIDDLEWARES = {
   'webcams.middlewares.WebcamsDownloaderMiddleware': 543,
}
COOKIES_ENABLED = True
COOKIES_DEBUG = True

Вот мой паук код:

class WebcamsSpider(scrapy.Spider):
    name = "webcams"

    def start_requests(self):
    urls = [
        'https://bridgerbowl.com/weather/webcams',
    ]

    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
        'Accept': 'application/json,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Accept-Encoding': 'gzip, deflate, sdch',
        'Accept-Language': 'en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4',
        'referer': 'https://bridgerbowl.com/',
        'cache-control': 'max-age=0',
    }

    for url in urls:
        yield scrapy.Request(url=url, headers=headers, callback=self.parse)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...