urllib从php链接

时间:2016-02-23 13:47:28

标签: python excel python-2.7 urllib

我正在尝试使用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()

1 个答案:

答案 0 :(得分:1)

尝试构建正则表达式以匹配脚本标记并将其删除,即

import re
re.sub('<script>.*</script>', "", content, re.I)

这会将内容中的任何脚本标记替换为“”。