Очистка файла с помощью html, сохраненного в локальной системе

Например, у меня был сайт "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

Наконец, мое намерение - очистить файл example.html, состоящий из www.example.com html кода, сохраненного в моей локальной системе

Может ли кто-нибудь предложить мне, как назначить этот файл example.html в start_urls

Заранее спасибо

Ответы

Ответ 1

Вы можете сканировать локальный файл, используя URL-адрес следующей формы:

 file:///127.0.0.1/path/to/file.html

Это не требует, чтобы на вашем компьютере был установлен http-сервер.

Ответ 2

Вы можете использовать HTTPCacheMiddleware, что даст вам возможность запускать паутину из кеша. Документ для параметров HTTPCacheMiddleware находится здесь.

В принципе, добавление следующих параметров в ваш settings.py заставит его работать:

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

Однако для этого требуется выполнить начальный прогон паука из Интернета для заполнения кеша.

Ответ 3

В scrapy Вы можете очистить локальный файл, используя:

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

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

Я предлагаю вам проверить это с помощью scrapy shell 'file:///path_of_directory/example.html'

Ответ 4

scrapy shell "file:E:\folder\to\your\script\Scrapy\teste1\teste1.html"

это работает для меня сегодня на Windows 10. Я должен поставить полный путь без ////.

Ответ 5

Если вы просматриваете исходный код scrapy Request, например github. Вы можете понять, какой запрос отправки scrapy на сервер http и получить необходимую страницу в ответ от сервера. Ваша файловая система не является http-сервером. Для тестирования с помощью scrapy вы должны настроить http-сервер. И тогда вы можете назначить URL-адреса для лечения, например

http://127.0.0.1/example.html