我想抓取网站上的数据。我用这个代码
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(),
}
这是inspect元素:
我希望得到红色椭圆形中的每一个文字,如mengabadi,mengabadikan等。' b' tag => tur亮点。但是,我没有得到任何结果。
问题是什么?怎么解决? 我改变了我的代码变成了这个:
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 :(得分:2)
选择器.tur highlight
表示 - 在类highlight
的所有元素中选择元素tur
。
要选择具有多个类的元素,请使用不带空格的选择器:
SET_SELECTOR = '.tur.highlight'
答案 1 :(得分:0)
据我所知,您想从单个css_selector中的不同名称(不同名称)的不同位置(标签)提取文本。
text = kamusset.css("div.sub_17::text, b.tur.highlight::text").extract()
这肯定可以
答案 2 :(得分:0)
可以!
text : Selector(text=response.body).xpath('//b[@class="tur highlight"]/text()').extract()
将返回所有出现的列表。