0

javascriptでWebページをスクレイプする必要があります。これは、http: //snipplr.com/view/66996/renderedinteractive-javascript-with-gtkwebkitjswebkit/の例で解決されているようです。Webコードからデータを抽出するには、 webkitダウンローダークラスを使用します。 。process_request関数を呼び出す必要があることを理解しています。リクエストのパラメータとして何を渡しますか。Scrapyのドキュメントを調べて、Scrapyで作成されたリクエストオブジェクトを渡す必要があるかどうかを確認しましたが、それは機能しません。

また、スパイダーオブジェクトが最後のパラメーターとしてprocess_requestに渡されることを理解しています。それはどのオブジェクトである必要がありますか?申し訳ありませんが、私はpython、scrapy、webkitを初めて使用するので、明白な答えを持った質問をするかもしれません。

4

1 に答える 1

2

手動で「呼び出す」process_requestのではなく、宣言するだけで済みます。エンジンはすべての適切なパラメーターを使用して呼び出します。と呼ばれるファイルmiddleware.py(またはそれを呼び出したいもの)を作成し、次のように入力するだけです。

...
class WebkitDownloader( object ):
    def process_request( self, request, spider ):
        if not isinstance(request, FormRequest):
            webview = webkit.WebView()
            ...

そして残りのすべてを、settings.pyファイルに次のように入力します。

DOWNLOADER_MIDDLEWARES = {
    'mybot.middleware.WebkitDownloader': 1000,
    ...
}

これでミドルウェアが機能するはずです。

于 2012-11-03T15:42:31.450 に答える