我正在尝试使用urllib.urlretrieve(python 2.7)从网址下载xls文件列表。我能够获取该文件,但文件顶部有一个<script>
标记,使其在excel中无法读取。
这就是我所拥有的:
import urllib
files= ['a','b', 'c', 'd', 'e', 'f']
url = 'http://www.thewebsite.com/data/dl_xls.php?bid='
for f in files:
urllib.urlretrieve(url + f, f + '.xls')
这会下载一个xls文件,顶部有以下内容:
<script>parent.parent.location.href = '../../../../a';</script>
使其在excel中无法读取。
如果我从xls中删除该脚本标记,则该文件将在excel中正确打开。
编辑 - 这是我的pypypy解决方案:
import urllib
files= ['a','b', 'c', 'd', 'e', 'f']
url = 'http://www.thewebsite.com/data/dl_xls.php?bid='
for f in files:
input_xls = f + '_in.xls'
urllib.urlretrieve(url + f, input_xls)
output = open(f + '_out.xls', "wb")
with open(input_xls, "rb") as i:
output.write(re.sub('<script>.*</script>', "", i.read(), re.I))
i.close()
output.close()
答案 0 :(得分:1)
尝试构建正则表达式以匹配脚本标记并将其删除,即
import re
re.sub('<script>.*</script>', "", content, re.I)
这会将内容中的任何脚本标记替换为“”。