#python-3.x #scrapy
#python-3.x #scrapy
Вопрос:
Я пытаюсь очистить HTML-файл, сохраненный в моей локальной файловой системе (ОС Windows 10).
когда я указываю путь к файлу в формате
start_urls = ['file:///path/to/file/file_name.htm']
Я получаю сообщение об ошибке
ОШИБКА [scrapy.core.scraper]: ошибка загрузки <ПОЛУЧИТЬ file:///path/to/file/file_name.htm >
Ошибка FileNotFoundError: [Ошибка 2] Нет такого файла или каталога: ‘pathtofilefile_name.htm «
когда я указываю путь к файлу в формате
start_urls = ['path/to/file/file_name.htm']
Я получаю сообщение об ошибке
ОШИБКА [scrapy.core.engine]: ошибка при получении запросов на запуск
вызывает ошибку ValueError(‘Отсутствует схема в URL запроса: %s’ % self._url)
Как я могу прочитать локальный HTML-файл и очистить его в ОС Windows?
Комментарии:
1. Поскольку вы говорите, что используете Windows, не должен ли ваш путь включать букву диска? например: ‘file:///C:/Users/justin/Desktop/myfile.html ‘
2.вы всегда можете использовать Python для запуска локального сервера
python3 -m http.server
docs.python.org/3/library/http.server.html
Ответ №1:
Я думаю, что это неправильно использовать start_urls
в данном случае. Может быть, вы можете попытаться прочитать данные в файле, а затем применить Selector
к нему? Проверьте этот пример:
>>> from scrapy import Selector
>>> f = open('example.html')
>>> sel = Selector(text=f.read())
>>> sel.css('head title::text').get()
Example title
Если вам нужно, вы можете поместить блок с чтением файла внутри функции start_requests
.
Ответ №2:
Вы можете написать код таким образом, чтобы очистить свой собственный файл, сохраненный в локальной системе
from bs4 import BeautifulSoup
import html5lib
myFile=open('C:/Users/CSE/AppData/Local/atom/app-1.42.0/practise.html','r')
soup=BeautifulSoup(myFile,"html5lib")
print(soup.prettify())
Внутри функции open первым параметром является ваш file_path (хотя я привел здесь свой собственный путь), а второй параметр — это режим, который вы хотите.