使用Python抓去网页中的关键字并保存指定文件中

来源:互联网 发布:java web导出excel 编辑:程序博客网 时间:2024/05/20 19:47

本脚本是在python3.3下执行的,很多的脚本是2.X下,他们有不同的地方,调用文件等等很多变化了,注意一下:

GetInfoByRegex.py:

#!/usr/local/bin/python3#coding=utf-8import reimport urllibimport urllib.requestimport osclass GetDataClass:    def __init__(self):        self.url = r''              #待挖掘数据的网页网址        self.regex = r''            #挖掘使用的正则表达式        self.savePath = r'D:'       #挖掘出来的结果保存的路径        self.fileName = r'result'   #保存结果的文件名字    def SaveResult(self):        status = 'true'        html = getPageHtml(self.url)        List = getWhatUwant(self.regex,html)        outStr=''        for x in range(len(List)):            outStr += List[x]+'\n'                try:            fileWrite = open(self.savePath+"\\"+self.fileName,'w')            fileWrite.writelines(outStr)        except Exception as err:            print (err)            status = 'false'        finally:            fileWrite.close()        return status#根据输入的网页地址url,获取html源码,将html源码返回def getPageHtml(url):    html = urllib.request.urlopen(url)    htmlSource = html.read().decode('utf-8')    html.close()                    #注意一下这里需要关闭    return htmlSource#根据正则表达式regex在Source中搜索需要的内容,将结果返回def getWhatUwant(regex,Source):    resultList = re.findall(regex,Source)    return resultListif __name__ == '__main__':    getData = GetDataClass()    getData.url = 'http://www.baidu.com' #input('请输入url:')    getData.regex = '<body>.*</body>' #input('请输入查找数据的正则表达式:')    getData.savePath = 'd:\\python' #input('请输入保存结果路径:')    getData.fileName = 'info.txt' #input('请输入保存结果文件名:')        status = getData.SaveResult()    if status == 'false':        print ('操作失败')    else:        print ('操作成功')    '''    getData = GetDataClass()    getData.url = input('请输入url:')    getData.regex = input('请输入查找数据的正则表达式:')    getData.savePath = input('请输入保存结果路径:')    getData.fileName = input('请输入保存结果文件名:')    '''
在其他Python脚本中调用该文件中的类,可以这样:

#!/usr/local/bin/python3#coding=utf-8import GetInfoByRegeximport ostry:    getData1 = GetInfoByRegex.GetDataClass()    getData1.url = 'http://www.baidu.com' #input('请输入url:')    getData1.regex = '<body>.*</body>' #input('请输入查找数据的正则表达式:')    getData1.savePath = 'd:\\python' #input('请输入保存结果路径:')    getData1.fileName = 'info.txt' #input('请输入保存结果文件名:')    status = getData1.SaveResult()    if status == 'false':        print ('操作失败')    else:        print ('操作成功')except Exception as e:    print (e)
需要注意的地方:

001:环境变量的设置:

1. 首先需要在系统中注册python环境变量:假设python的安装路径为c:\python2.6,则修改我的电脑->属性->高级->环境变量->系统变量中的PATH为:
(为了在命令行模式下运行Python命令,需要将python.exe所在的目录附加到
PATH=PATH;c:\python26
上述环境变量设置成功之后,就可以在命令行直接使用python命令。或执行"python *.py"运行python脚本了。
2. 此时,还是只能通过"python *.py"运行python脚本,若希望直接运行*.py,只需再修改另一个环境变量PATHEXT:
PATHEXT=PATHEXT;.PY;.PYM






原创粉丝点击