我正在写一个蜘蛛来抓取以下网站:
我正在尝试抓取每个标签的“src”值,最终目标是抓取产品图片。
我正在使用 Splash 运行 Scrapy,我正在使用 Docker。我在终端中运行两个窗口:一个用于激活 Docker,另一个用于我用来运行蜘蛛的 VirtualEnv。
我已经确保在运行之前清除容器,并且我已经运行了命令:
$ docker run -p 8050:8050 -rm scrapinghub/splash
我已经根据Scrapy和Splash网站上的文档更改了蜘蛛中其他代码文件中的设置/代码。
这是我到目前为止尝试过的:
from scrapy_splash import SplashRequest as SplashRequest
class BR_Images(scrapy.Spider):
name = 'BR_Spider'
def start_requests(self):
start_url = 'https://bananarepublic.gap.com/browse/category.do?cid'\
'=28660&nav=meganav%3AMen%3AMen%27s%'\
'20Clothing%3ASweaters#department=75'
for url in start_url:
yield SplashRequest(url=start_url, callback=self.parse)
def parse(self, response):
grid = response.css('section::attr("Product.Grid")').getall()
for image in grid:
response.css('img::attr(src)').get()
yield {"src": image}
日志显示 (200) 输出并表示该网站已被抓取:
2023-03-27 20:52:23 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://bananarepublic.gap.com/browse/category.do?cid=28660&nav=meganav%3AMen%3AMen%27s%20Clothing%3ASweaters#department=75 via http://localhost:8050/render.html> (referer: None)
然而,实际上什么也没有返回。
我试过只抓取一个产品,也试过抓取网站上的所有产品。都没有返回期望的结果。
我需要做什么来抓取图像 SRC 值?