使用scrapy爬网数据时无法获取项

2024-04-26 11:53:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经检查了铬元素: enter image description here

我想用scrapy获取红色框中的数据(可以不止一个)。我使用了以下代码(我从scrapy文档中看到了教程):

import scrapy

class KamusSetSpider(scrapy.Spider):
    name = "kamusset_spider"
    start_urls = ['http://kbbi.web.id/' + 'abad']

    def parse(self, response):
        for kamusset in response.css("div#d1"):
            text = kamusset.css("div.sub_17 b.tur.highlight::text").extract()
            print(dict(text=text))

但是,没有结果:

enter image description here

怎么了?我已将其更改为此(使用splash),但仍然不起作用:

    def start_requests(self):
        for url in self.start_urls:
            yield SplashRequest(url, self.parse, args={'wait': 0.5})

    def parse(self, response):
        html = response.body

        for kamusset in response.css("div#d1"):
            text = kamusset.css("div.sub_17 b.tur.highlight::text").extract()
            print(dict(text=text))

Tags: textinselfdivforparseresponsedef
1条回答
网友
1楼 · 发布于 2024-04-26 11:53:00

在这种情况下,页面内容似乎是动态生成的 尽管您可以在浏览器中查看时看到存在的元素,但它们并不存在于HTML源代码中(即,在Scrapy所看到的内容中)。这是因为Scrapy不能呈现JavaScript等,你需要使用某种浏览器来呈现页面,然后将结果交给Scrapy处理。我建议使用Splash,因为它与Scrapy无缝集成。你知道吗

相关问题 更多 >