0
私はジェネリックスパイダーを作成して、最も一般的なタスクとジェネリックスパイダーを継承し、ウェブサイト固有の変数を宣言します。1つのジェネリックスパイダースパイダーと複数の特定のスパイダーを作成する
genericspider.py
があります:
# -*- coding: utf-8 -*-
import scrapy
from scrapy.spiders import Spider, CrawlSpider
class GenericProductSpider(scrapy.Spider):
def __init__(self, start_urls=[], finditemprop='', keywords='', **kwargs):
CrawlSpider.__init__(self, **kwargs)
print ("\n\n Init Generic \n")
そして私は一般的なものと同じディレクトリにspecificspider.py
を持っています。
# -*- coding: utf-8 -*-
import scrapy
from scrapy.spiders import Spider, CrawlSpider
from .genericfabric import GenericFabricsSpider
class SpecificSpider(GenericProductSpider):
def __init__(self, **kwargs):
print ("\n init specific \n")
name = "specific1"
start_urls = ['http://www.specificdomian.com',]
super(SpecificSpider, self).__init__(name, start_urls, **kwargs)
スーパークラスのイニシャライザを正しく呼び出す方法についての理解の問題があるようです。私はあらゆる種類のエラーメッセージを受け取りますが、のinitメソッドは、一度も実行されていません。
cookiecutter pythonモジュールを参照してください。cookiecutter scrapy templates .... y – scriptso
@scriptsoこれは面白そうです。私が理解している限り、それはテンプレートのようなもので、私の変数を内部に投げ込むことができ、それは私のためにクモを作りますか?私はコードを更新する必要がある場合は、私はすべてのスパイダーでそれを更新する必要がありますか? – Chris