Не удается извлечь javascript сгенерированный код с помощью scrapy - PullRequest
1 голос
/ 14 июля 2020

Я хочу извлечь js сгенерированный код со страницы https://edadeal.ru/moskva/retailers/5ka

Я получил только этот код https://pastebin.com/vEhygn69

Но я хочу получить html -код продуктов, например

<div class="b-offer__root">

Я запустил spla sh с помощью этой команды

sudo docker run -p 8050 : 8050 scrapinghub / spla sh

Полный журнал scrapy crawl edadeal1 &>all_logs https://pastebin.com/vyHzZNPU

Мой код

Добавлен этот код по умолчанию settings.py

ROBOTSTXT_OBEY=False
SPLASH_URL = 'http://localhost:8050'
DOWNLOADER_MIDDLEWARES = {
    'scrapy_splash.SplashCookiesMiddleware': 723,
    'scrapy_splash.SplashMiddleware': 725,
    'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}
SPIDER_MIDDLEWARES = {
    'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'

edadeal1.py

import scrapy
from scrapy_splash import SplashRequest
import time

class Edadeal1Spider(scrapy.Spider):
    name = 'edadeal1'
    allowed_domains = ['edadeal.ru']
    start_urls = ['https://edadeal.ru/moskva/retailers/5ka']

    def start_requests(self):
        yield SplashRequest(
            url='https://edadeal.ru/moskva/retailers/5ka',
            args={'wait': 20},
            callback=self.parse
        )
      

    def parse(self, response):
        products = response.css("div.p-retailer__offers > a::attr(href)").extract()
        yield {
            'data': response.text
        }

Я запустил scrapy crawl edadeal -o res. json

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