今天在查有关spss modeler的参考资料时,发现了这个网站:
ftp://public.dhe.ibm.com/software/analytics/spss/documentation/modeler/14.2/zh_CN/
里面包含了许多有关spss modeler的文件,于是想用爬虫把它们都爬取下来。
文件不多,但是想到以后可能会遇到文件比较多的情况,到时候再根据这个程序拓展一下便可以了(虽然又要分析一次源代码~囧)。
废话少说,干活~
首先,观察文件的链接,对于第一个文件,它的url为:
对于第二个文件,它的url为:
很明显,文件的url就是当前目录链接加上文件名。那么下一步,我们去找到这些文件名。
接下来就是用正则表达式找到这些文件名,然后根据当前目录的url,得到文件的url.
代码如下:
#-*- coding:utf-8 -*-
import requests
import re
import os
basicUrl='http://public.dhe.ibm.com/software/analytics/spss/documentation/modeler/14.2/zh_CN/'#注意这里不能用ftp://开头,要改成http://,不然会报错
def getHTMLText(url, code="utf-8"):
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = code
return r.text
except:
return ""
html = getHTMLText(basicUrl)
r= re.compile(r'\w*.pdf')
for filename in r.findall(html):#找到网页上的pdf文件
if not os.path.exists(filename):#若该文件之前没有保存过,则保存下来
with open(filename, 'wb') as f:
file=requests.get(basicUrl+filename)
f.write(file.content)#保存文件用二进制形式