我刚刚使用docker实现了scrapy with splash。我认为这方面的一切都正常工作。我直接遵循了一个教程,因此如果您需要它,这里是我的设置:
SPLASH_URL = 'http://localhost:8050/'
DUPEFILTER_CLASS =
'scrapy_splash.SplashAwareDupeFilter'
HTTPCACHE_STORAGE =
'scrapy_splash.SplashAwareFSCacheStorage'
SPIDER_MIDDLEWARES = {
'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}
DOWNLOADER_MIDDLEWARES = {
'scrapy_splash.SplashCookiesMiddleware': 723,
'scrapy_splash.SplashMiddleware': 725,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}
问题在于,即使处理了javascript(似乎),我也没有得到我想要的信息,即产品价格。
我得到的只是一个空字段。
import scrapy
from scrapy_splash import SplashRequest
class USpider(scrapy.Spider):
name = "u_bot"
def start_requests(self):
yield SplashRequest(
url='https://www.coursesu.com/recherche?q=3256223662106',
callback=self.parse,
)
def parse(self, response):
price = response.css("span.sale-price::text").extract()
yield {'price': price}
我缺少明显的东西吗?当我打印所有跨度时,我还显示了一些其他信息(如我所见,产品名称或类别名称未出现在网页上)。
您是否知道我该如何解决?万分感谢 !
编辑: