我正在尝试提取类别页面上存在的多个产品网址。对于同一个我想针对类别页面URL获得多个产品URL,但是由于一种产品可以出现在各个类别页面上,因此,沙哑地将其过滤掉了。如何防止这种情况,因为dont filter = True在这里不起作用?另外,有一种方法可以使scrapy不检查提取的URL的response.status状态,而只是将其输出。
import scrapy
import csv
from scrapy.spiders import SitemapSpider
from scrapy.spider import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import XMLFeedSpider
class ExtractSpider(CrawlSpider):
s = []
with open('C:\\Users\\Vishal\\Desktop\\kk.csv') as f:
csv_read = csv.reader(f)
next(csv_read)
for line in csv_read:
s.append(line[0])
name = 'Extract'
allowed_domains = ["abyexample.com"]
start_urls = s
rules = [Rule(LinkExtractor(allow=('https://abyexample/product')), callback="parse_link", follow=False)]
def parse_link(self, response):
yield {
"main":response.request.headers.get('referer'),"response":response.url}
答案 0 :(得分:0)
将unique=False
传递到LinkExtractor
。
答案 1 :(得分:-1)
您可以通过将最终链接列表转换为set()
来提取重复项。
类似set([0,1,1,2,1,3,5])
的结果将导致{0,1,2,3,5}
,删除重复的值。
希望有帮助!