我有一只带有scrapy的蜘蛛
import scrapy
class QuotesSpider(scrapy.Spider):
name = "website"
start_urls = [
'https://website.com',
]
def parse(self, response):
for main in response.css('div#main'):
yield {
'link': random.choice(main.css('li.afinidades div.content ul li h5 a::text')[0].extract()),
}
有四个元素«链接»,我想随机取它们:现在是0,然后是3,然后是2,等等。
我试过了:
导入scrapy
class QuotesSpider(scrapy.Spider):
name = "website"
start_urls = [
'https://website.com',
]
from random import randrange
key = randrange(0, 3)
def parse(self, response):
for main in response.css('div#main'):
yield {
'link': random.choice(main.css('li.afinidades div.content ul li h5 a::text')[key].extract()),
}
没有结果。有什么想法吗?
答案 0 :(得分:0)
css()
函数返回另一个Selector
实例,而不是实际结果的数组。您必须在extract()
函数后选择所需的索引。
'link': main.css('li.afinidades div.content ul li h5 a::text').extract()[key]
如果您需要了解更多信息,请查看有关选择器的Scrapy文档。 https://doc.scrapy.org/en/latest/topics/selectors.html