現在、私は、スクラップを使用して小さなWeb廃棄プロトタイプを作成しようとしています。 私の現在の問題は、リンク抽出とそれに続くものです。深いクロールが動作しない
私はページを探索し、ページへのリンクを見つけようとしていますが(画像やその他のコンテンツは現在ありません)、正しくパラメータを設定する方法はわかりません。
これは私が使用しているクモです:
class DefaultSpider(CrawlSpider):
name = "default"
session_id = -1
rules = [Rule(LinkExtractor(allow=()),callback='parse', follow=True)]
def start_requests(self):
#not relevent code that gives an URL list to be scrawled
for url in listurl:
#make scrappy follow only the current domain url.
self.rules[0].allow=url
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = Website(response.url,response.text)
DBInterface.store(page)
をページ内のすべてのリンクを見つけるように見えるdoesntのクモ。私はそれが正しい方法ではないと思う。私は、parseメソッドの代わりにコールバックとして別の関数を試しました。 (あまりにもルールのコールバックパラメータを変更)
def processlinks (self,response)
page = Website(response.url,response.text)
DBInterface.store(page)
編集:適切な理解のための更新コード+タイトル...
私はきちんとそれをより明確にするために、タイトルと私のコードを編集し、私はあなたの提案を理解し、私はあなたが私が何を意味するか誤解だと思います。私は心配しています! – Neil
多分あなたは私の答えの最初の部分を読まなかったかもしれませんが、 'CrawlSpider'を使うときは、' start_requests'と 'parse'メソッドをオーバーライドできません。私はあなたのコードの中でそれらを見ているので、あなたのクモが動作していない理由になる可能性があります。 – eLRuLL
"parseメソッドの代わりにコールバックとして別の関数を試しました。(ルールコールバックパラメータも変更しました)"私は引用しています。これは、解析をオーバーライドするか、別のメソッドをコールバックとして使用する場合と同じように動作します。 – Neil