Использование scrapy с scrapyd в Django, не входящем в def (parse) - PullRequest
0 голосов
/ 01 июня 2018

Я все еще изучаю scrapy и пытаюсь использовать scrap с scrapyd в проекте Django.

Но я замечаю, что паук просто не войдет в def (parse)

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

class NewsSpider(CrawlSpider):
    print("Start SPIDER")
    name = 'detik'
    allowed_domains = ['news.detik.com']
    start_urls = ['https://news.detik.com/indeks/all/?date=02/28/2018']

def parse(self, response):
    print("SEARCH LINK")
    urls = response.xpath("//article/div/a/@href").extract()        
    for url in urls:
        url = response.urljoin(url)
        yield scrapy.Request(url=url, callback=self.parse_detail)

def parse_detail(self,response):
    print("SCRAPEEE")
    x = {}
    x['breadcrumbs'] = response.xpath("//div[@class='breadcrumb']/a/text()").extract()
    x['tanggal'] = response.xpath("//div[@class='date']/text()").extract_first()
    x['penulis'] = response.xpath("//div[@class='author']/text()").extract_first()
    x['judul'] = response.xpath("//h1/text()").extract_first()
    x['berita'] = response.xpath("normalize-space(//div[@class='detail_text'])").extract_first()
    x['tag'] = response.xpath("//div[@class='detail_tag']/a/text()").extract()
    x['url'] = response.request.url
    return x

Печать («Стартовый паук») есть в журнале, но печать («Поиск ссылки») отсутствует.

У меня также есть такая ошибка

  [Launcher,3804/stderr] Unhandled error in Deferred:  

Пожалуйста,Помогите.PS: когда я запускаю его вне Django, он работает просто отлично

Спасибо

1 Ответ

0 голосов
/ 14 июня 2018

Мне кажется, что вам не хватает правил сканирования в вашем пауке.

Попробуйте добавить

KwSpiderSpider.rules = [
    Rule(LinkExtractor(allow=".+", unique=True),callback='parse'),
]

в ваш код после start_urls.
Я не знаюЯ не понимаю, как это может работать за пределами Django.

...