31

たとえば、私はサイトを持っていました。"www.example.com" 実際には、ローカル システムに保存して、このサイトの html をスクレイピングしたいと考えています。テストのために、そのページをデスクトップに保存しましたexample.html

今、私は以下のようにこれのためのスパイダーコードを書いていました

class ExampleSpider(BaseSpider):
   name = "example"
   start_urls = ["example.html"]

   def parse(self, response):
       print response
       hxs = HtmlXPathSelector(response)

しかし、上記のコードを実行すると、以下のようなエラーが発生します

ValueError: Missing scheme in request url: example.html

最後に、私の意図は、ローカル システムに保存されている html コードexample.htmlで構成されるファイルをスクレイピングすることです。www.example.com

そのexample.htmlファイルをstart_urlsに割り当てる方法について誰かが私に提案できますか

前もって感謝します

4

7 に答える 7

33

次の形式の URL を使用して、ローカル ファイルをクロールできます。

 file:///path/to/file.html
于 2014-03-05T19:56:23.510 に答える
14

HTTPCacheMiddleware を使用すると、スパイダーをキャッシュから実行できます。HTTPCacheMiddleware 設定のドキュメントは、ここにあります

基本的に、次の設定を settings.py に追加すると機能します。

HTTPCACHE_ENABLED = True
HTTPCACHE_EXPIRATION_SECS = 0 # Set to 0 to never expire

ただし、これには、Web から最初のスパイダーを実行してキャッシュを作成する必要があります。

于 2012-06-05T12:27:23.410 に答える
-6

たとえばgithubなどのスクレイピー リクエストのソース コードを表示する場合。どのようなスクレイピーが http サーバーにリクエストを送信したかを理解し、サーバーからの応答で必要なページを取得できます。ファイルシステムは http サーバーではありません。Scrapy でテストするために、http サーバーをセットアップする必要があります。そして、URLをscrapyのように割り当てることができます

http://127.0.0.1/example.html
于 2012-06-05T12:04:49.310 に答える