Я хочу сканировать веб-страницу, на которой отображаются результаты поиска в интернет-магазине Google, а ссылка является статической для данного ключевого слова.
Я хочу периодически находить рейтинг расширения.Вот URL
Проблема в том, что я не могу обработать динамические данные, сгенерированные кодом Javascript
в ответе от сервера.
Я пытался использовать Scrapy
и Scrapy-Splash
для отображения нужной страницы, но я все еще получал тот же ответ.Я использовал Docker
для запуска экземпляра контейнера scrapinghub/splash
на порту 8050
.Я даже посетил веб-страницу http://localhost:8050
и ввел свой URL-адрес вручную, но он не смог отобразить данные, хотя сообщение показало успех.
Вот код, который я написал для сканера.На самом деле он ничего не делает, и его единственная задача - извлечь HTML-содержимое нужной страницы.
import scrapy
from scrapy_splash import SplashRequest
class WebstoreSpider(scrapy.Spider):
name = 'webstore'
def start_requests(self):
yield SplashRequest(
url='https://chrome.google.com/webstore/search/netflix%20vpn?utm_source=chrome-ntp-icon&_category=extensions',
callback=self.parse,
args={
"wait": 3,
},
)
def parse(self, response):
print(response.text)
и содержимое settings.py
моего Scrapy
проекта:
BOT_NAME = 'webstore_cralwer'
SPIDER_MODULES = ['webstore_cralwer.spiders']
NEWSPIDER_MODULE = 'webstore_cralwer.spiders'
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'
И за результат я всегда ничего не получаю.
Любая помощь приветствуется.