我正在编写一个刮刀来打开CSV,获取链接列表,在网站中提取特定的HTML标签(语音)并将内容保存在TXT文件中,该文件以发言时间命名
我完成了这件事:
#encoding:utf-8
import csv
import urllib
import lxml.html
import unicodedata
objeto = csv.reader(open('links.csv', 'rU'), dialect=csv.excel_tab)
for link in objeto:
connection = urllib.urlopen(link[0])
dom = lxml.html.fromstring(connection.read())
discurso = []
for d in dom.xpath('//div[@id="content-core"]/div/p/text()'):
discurso.append(d)
d1 = " ".join(discurso)
data = dom.xpath('//span[@class="documentPublished"]/text()[normalize-space()]')
data1 = [date.strip() for date in data]
make_string = "-".join(data1)
file = open(make_string+'.txt', 'w')
file= arquivo.write(d1)
file.close()
我能够提取日期和演讲,但最后一步不起作用。当尝试在TXT文件中保存语音时,IDLE会向我显示消息
IOError: [Errno 2] No such file or directory: '17/12/2010 23h39,.txt'
我尝试过使用' w'和' a'在创建文件时,但失败了。我做错了什么?
答案 0 :(得分:2)
问题是它希望在其下找到目录17
和子目录12
,因为/
用于表示目录。我建议将所有/
字符替换为-
。