gpt4 book ai didi

python - 使用 python-Scrapy 抓取动态内容

转载 作者:IT老高 更新时间:2023-10-28 22:00:22 25 4
gpt4 key购买 nike

免责声明:我在 StackOverflow 上看到了许多其他类似的帖子,并尝试以相同的方式进行操作,但它们似乎不适用于该网站。

我正在使用 Python-Scrapy 从 koovs.com 获取数据。

但是,我无法获得动态生成的产品尺寸。具体来说,如果有人可以指导我从 this 的下拉菜单中获取“不可用”尺寸标签。链接,不胜感激。

我可以静态获取尺码列表,但这样做我只能获得尺码列表,而不是其中哪些是可用的。

最佳答案

您也可以使用 ScrapyJS 来解决它(不需要 selenium 和真正的浏览器):

This library provides Scrapy+JavaScript integration using Splash.

按照 Splash 的安装说明进行操作和 ScrapyJS ,启动splash docker容器:

$ docker run -p 8050:8050 scrapinghub/splash

将以下设置放入settings.py:

SPLASH_URL = 'http://192.168.59.103:8050' 

DOWNLOADER_MIDDLEWARES = {
'scrapyjs.SplashMiddleware': 725,
}

DUPEFILTER_CLASS = 'scrapyjs.SplashAwareDupeFilter'

这是您的示例蜘蛛,它能够查看尺寸可用性信息:

# -*- coding: utf-8 -*-
import scrapy


class ExampleSpider(scrapy.Spider):
name = "example"
allowed_domains = ["koovs.com"]
start_urls = (
'http://www.koovs.com/only-onlall-stripe-ls-shirt-59554.html?from=category-651&skuid=236376',
)

def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url, self.parse, meta={
'splash': {
'endpoint': 'render.html',
'args': {'wait': 0.5}
}
})

def parse(self, response):
for option in response.css("div.select-size select.sizeOptions option")[1:]:
print option.xpath("text()").extract()

这是控制台上打印的内容:

[u'S / 34 -- Not Available']
[u'L / 40 -- Not Available']
[u'L / 42']

关于python - 使用 python-Scrapy 抓取动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30345623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com