Как передать данные scrapy без URL-запроса? - PullRequest
0 голосов
/ 09 мая 2020

Я использую Python 3 и последнюю версию scrapy. Когда я передаю некоторые данные CSV с помощью другой функции обратного вызова без URL-адреса. Он показывает TypeError: URL-адрес запроса должен быть str или unicode, получил NoneType:

Мой вопрос: как передавать данные без URL-адреса?

# -*- coding: utf-8 -*-
import scrapy
import csv


class AppsSpider(scrapy.Spider):
    def start_requests(self):
        with open('data.csv', mode='r', encoding='utf-8') as file:
            rows = csv.reader(file)

            for row in rows:
                url = row[0]
                title = row[1]
                developer = row[2]
                price = row[3]
                desc = row[4]
                rating = row[5]

                items = {
                    'url': url,
                    'title': title,
                    'developer': developer,
                    'price': price,
                    'desc': desc,
                    'rating': rating

                }
                yield scrapy.Request(None, meta=items, dont_filter=True, callback=self.parse_it)

    def parse_it(self, response):

        url = response.meta['url']
        title = response.meta['title']
        developer = response.meta['developer']
        price = response.meta['price']
        desc = response.meta['desc']
        rating = response.meta['rating']

        if int(rating) > 4:
            parse_items = {
                'url': url,
                'title': title,
                'developer': developer,
                'price': price,
                'desc': desc,
                'rating': rating
            }

            yield parse_items



1 Ответ

0 голосов
/ 09 мая 2020

Вы передали «Нет» в этой строке в качестве первого аргумента.

yield scrapy.Request(None, meta=items, dont_filter=True, callback=self.parse_it)

Передайте туда свой «URL»!

...