python - 从scrapy的多个类中获取文本

标签 python scrapy web-crawler

我想从网站抓取数据。我用这个代码

import scrapy 

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

    def parse(self, response):
        SET_SELECTOR = '.tur highlight'
        for brickset in response.css(SET_SELECTOR):
            yield {
                'name': brickset.css(SET_SELECTOR).extract_first(),
            }

这是检查元素:

enter image description here

我想获取红色椭圆中的每个文本,如 mengabadi、mengabadikan 等。'b' 标签中有多个类 => tur highlight。但是,我没有得到任何结果。 enter image description here

有什么问题?如何解决? 我已将我的代码更改为:

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))

但还是不行。它返回 null。

最佳答案

Selector .tur highlight 表示 - 在所有具有 tur 类的元素中选择元素 highlight

要选择具有多个类的元素,请使用不带空格的选择器 :

SET_SELECTOR = '.tur.highlight'

关于python - 从scrapy的多个类中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44948665/

相关文章:

知道哪个按钮按下的 Python 函数 (Tkinter)

python - 使用具有多个参数的 .write 函数写入 txt 文件 - Python

python - Scrapy:限制请求或请求字节数

python - 如何使用抓取

search - 解决方案+遗传

python - 如何从 Python/numpy 中的 ndarray 中的每一行中选择不同的列?

python - tshark提供的原始数据是否完整?

python - 如何从抓取的数据中去除 html 标签和 javascript 函数?

symfony - 如何安全地检查节点是否为空? (Symfony 2 爬虫)

python - 为什么scrapy没有给出所有结果并且规则部分也不起作用?