2017-07-06 76 views
0

我想从网站抓取数据。我用这个代码从scrapy中的多个类获取文本

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突出显示。但是,我没有得到任何结果。 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。

+0

的选择应该是'” .tur.highlight'' ... –

回答

1

选择器.tur highlight表示 - 在所有元素中选择元素highlight类别tur

要选择多类使用选择元素,而无需空格

SET_SELECTOR = '.tur.highlight' 
+0

我很抱歉,但它仍然没有工作。我无法获得文本mengabadi,mengabaikan等。为什么? – RiefSapthana

+0

认为数据是通过JS呈现的。您可以使用scrapy splash查看呈现的HTML。 –