抓取保存在本地系统中的html文件

时间:2019-04-08 07:38:44

标签: python-3.x scrapy

我正在尝试抓取保存在本地文件系统(Windows 10 OS)中的HTML文件。

当我使用以下格式提供文件路径时

start_urls = ['file:///path/to/file/file_name.htm']

我收到错误

  

[scrapy.core.scraper]错误:下载
时出错   FileNotFoundError:[错误2]没有这样的文件或目录:'\ path \ to \ file \ file_name.htm'

当我使用以下格式提供文件路径时

start_urls = ['path/to/file/file_name.htm']

我得到了错误

  

[scrapy.core.engine]错误:获取启动请求时出错
  引发ValueError('请求URL中缺少方案:%s'%self._url)

如何读取本地HTML文件并将其抓取到Windows OS中?

2 个答案:

答案 0 :(得分:2)

我认为在这种情况下使用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中。

答案 1 :(得分:0)

您可以通过这种方式编写代码以刮取保存在本地系统中的自己文件

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())

在内部打开函数中,第一个参数是您的file_path(尽管我在这里给出了自己的路径),第二个参数是您想要的模式。