Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用保存的html页面使用scrapy进行刮取_Html_Web Scraping_Scrapy_Local - Fatal编程技术网

使用保存的html页面使用scrapy进行刮取

使用保存的html页面使用scrapy进行刮取,html,web-scraping,scrapy,local,Html,Web Scraping,Scrapy,Local,我正在寻找一种方法,将scrapy与我保存在计算机上的html页面一起使用。就我而言,我犯了一个错误: requests.exceptions.InvalidSchema: No connection adapters were found for 'file:///home/stage/Guillaume/scraper_test/mypage/details.html' 蜘蛛_开始_URL=[”file:///home/stage/Guillaume/scraper_test/mypage

我正在寻找一种方法,将scrapy与我保存在计算机上的html页面一起使用。就我而言,我犯了一个错误:

requests.exceptions.InvalidSchema: No connection adapters were found for 'file:///home/stage/Guillaume/scraper_test/mypage/details.html'

蜘蛛_开始_URL=[”file:///home/stage/Guillaume/scraper_test/mypage/details.html“]

我使用将现有HTML文件注入(几乎总是
.scrapy/httpcache/${spider_name}
)获得了巨大成功。然后,打开前面提到的默认基于文件的缓存存储,以及“虚拟策略”,该策略认为磁盘上的文件具有权威性,并且如果在缓存中找到URL,则不会发出网络请求

我希望脚本会是这样的(这只是一般的想法,甚至不能保证运行):


1.除非我大错特错,否则Scrapy支持
文件:
方案已经很长时间了。2.根据您共享的日志,它看起来像是由著名的HTTP客户端库
请求生成的,而不是Scrapy。现在我真的不知道,因为我是Scrapy的新手,所以我不会在任何时候使用静态服务器。对不起,我没有说清楚。我认为在其他人尝试进一步挖掘和帮助之前,您可能需要提供进一步的信息(更多的日志行?一些相关代码?等等)。所有日志:延迟中未处理的错误:2018-11-09 13:05:25[twisted]严重:回溯(最后一次调用):文件“/home/stage/miniconda3/envs/scrapy_env/lib/python3.6/site packages/twisted/internet/defer.py”,第1386行,在inlineCallbacks result=g.send(result)文件中“/home/stage/miniconda3/envs/scrapy_env/lib/python3.6/site packages/scrapy/crawler.py”,第82行,在爬网产量self.engine.open_spider(self.spider,启动请求)requests.exceptions.InvalidSchema:未找到“”的连接适配器file:///home/stage/Guillaume/scraper_test/mypage/details.html'
import sys
from scrapy.extensions.httpcache import FilesystemCacheStorage
from scrapy.http import Request, HtmlResponse
from scrapy.settings import Settings

# this value is the actual URL from which the on-disk file was saved
# not the "file://" version
url = sys.argv[1]
html_filename = sys.argv[2]
with open(html_filename) as fh:
    html_bytes = fh.read()
req = Request(url=url)
resp = HtmlResponse(url=req.url, body=html_bytes, encoding='utf-8', request=req)
settings = Settings()
cache = FilesystemCacheStorage(settings)
spider = None  # fill in your Spider class here
cache.store_response(spider, req, resp)