Scrapy сохраняет каждую ссылку целиком - PullRequest
0 голосов
/ 04 августа 2020

Введение

в настоящее время я работаю над поисковым роботом, который сохраняет каждую ссылку домена в файл .csv

Проблема В моя консоль, я вижу, которая связывает ее следующее, но мои элементы все еще пусты. Я получаю что-то вроде: click me

Here is my default code

import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from ..items import LinkextractorItem

class TopArtSpider(CrawlSpider):
    name = "topart"
    start_urls = [
        'https://www.topart-online.com/de/Bambus-Kunstbaeume/l-KAT11'
    ]
    custom_settings = {'FEED_EXPORT_FIELDS' : ['Link'] }

    rules = (
        Rule(LinkExtractor(), callback='parse_item', follow=True),
    )

    
    def parse_item(self, response):
        items = LinkextractorItem()
        link = response.xpath('a/@href')
        items['Link'] = link
        yield items

мой start_url - это просто категория домена, потому что я не хочу слишком долго ждать, пока я пытаюсь создать правильного паука.

1 Ответ

0 голосов
/ 04 августа 2020

Селектор XPATH не ищет всю DOM. Измените его на это.

link = response.xpath('//a/@href')

// выполняет поиск по всей DOM.

Вы также не собираете данные, поэтому вам нужно включить getall(), что даст вам список. Вы также можете использовать от l oop до l oop вокруг каждой ссылки, что, на мой взгляд, вероятно, вам следует использовать.

link = response.xpath('//a/@href')
        for a in link: 
            items['Link'] = a.get()
            yield items
...