我正在尝试使用python中的scrapy保存html页面及其类别。尝试保存它们时,我希望它们具有“ WebCategory_http://whatever.com”的名称。每当我尝试使用以下代码进行操作时:
def parse(self,response):
content = response.body
url = response.url
cat = str(response.meta['cat'])
filename = str(cat) + '_' + str(url)
with open(filename,'wb') as f:
f.write(response.body)
当我这样做时,会发生这种情况:
IOError: [Errno 2] No such file or directory: 'Arts_https://www.behindthevoiceactors.com/'
2018-11-19 15:43:15 [scrapy.extensions.logstats] INFO: Crawled 45 pages (at 45 pages/min), scraped 0 items (at 0 items/min)
n)
我的猜测是'/'被解释为路径的一部分,而不是文件名,是否有继续使用'/'的方式?
答案 0 :(得分:0)
否,/
在大多数文件系统中不是文件名的有效部分。您需要将其替换为其他字符。
答案 1 :(得分:0)
否,您不能在路径名中使用/
,它是保留字符(在此系统上)。
用其他字符替换字符,例如:
filename = str(cat) + '_' + str(url).replace('/', '_')