Это потому, что у вас есть URL http://www.piaov.com, и scrapy игнорирует дубликаты URL, если dont_filter=True
не указано в Request
как Request(url_here, dont_filter=True)
Также мне не нравится ваша логика скребказачем ты вообще звонишь parse_item
?это не обязательно.Пожалуйста, посмотрите код ниже и сделайте это так.
import scrapy
class PvSpider(scrapy.Spider):
name = 'pv'
allowed_domains = ['www.piaov.com']
start_urls = ['http://www.piaov.com/']
def start_requests(self):
yield scrapy.Request(url='http://www.piaov.com/list/7.html')
def parse(self, response):
for name in response.xpath("//ul[@class='mlist']//li/a/@title").extract():
yield {"name": name}
for p in range(2, 7):
yield scrapy.Request(url='http://www.piaov.com/list/7_{}.html'.format(p),
callback=self.parse)