Как извлечь дубликаты при использовании экстрактора Scrapy Link? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь извлечь несколько URL-адресов продуктов, присутствующих на страницах категорий.Для одного и того же я хочу получить несколько URL-адресов продуктов по URL-адресу страницы категории, но так как один продукт может присутствовать на различных страницах категории, изрядно отфильтровывают его.Как предотвратить это, так как dont filter = True здесь не работает?Кроме того, есть ли способ, которым scrapy не проверяет состояние response.stat извлеченного URL-адреса и просто выдает его.

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}

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Пропуск unique=False в LinkExtractor.

0 голосов
/ 17 декабря 2018

Вы можете извлечь дубликаты, преобразовав ваш окончательный список ссылок в set().

Что-то вроде: set([0,1,1,2,1,3,5]) приведет к {0,1,2,3,5}, удалив дублирующиеся значения.

Надеюсь, чтопомогает!

...