Встроенная ошибка при вызове скрапа - Джанго - PullRequest
0 голосов
/ 29 августа 2018

Я использую Django - scrapy для создания приложения для сканирования некоторых сайтов.

Это мой views.py на Django, он ловит значения POST и запускает scrap, когда crawlit() называется

from django.shortcuts import render
from django.http import HttpResponse as hres
from .MetaCrawl import InitCrawl
import json


def index( req ):
    return render( req, 'crawler/index.html' )


def crawlit( req ):
    val = req.POST['value'] #https://stackoverflow.com
    InitCrawler( val )
    return hres( json.dumps({'message':'Sent!'}) )

На том же уровне view.py у меня есть файл с именем MetaCrawl.py

import scrapy
from twisted.internet import reactor
from scrapy.crawler import CrawlerRunner
from scrapy.utils.log import configure_logging


class Spider( scrapy.Spider ):
    name="project"
    links = []
    start_urls = links

    def __init__( self, l ):
        self.links.append( l )

    def parse( self, response ):
        for item in response.xpath('//a'):
            print(item)


class InitCrawl:
    def __init__( self, link ):
        configure_logging()
        crawler = CrawlerRunner()
        crawler.crawl( Spider )
        d = crawler.join()
        d.addBoth( lambda _: reactor.stop() )
        reactor.run()

Я получил эту ошибку:

builtins.ValueError: сигнал работает только в основном потоке

и иногда я получаю эту ошибку:

ValueError: сигнал работает только в основном потоке

Я следовал этому уроку Scrapy Spiders и я потерян. Как я мог решить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...