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

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

GetInfoByRegex.py:

#!/usr/local/bin/python3
#coding=utf-8
import re
import urllib
import urllib.request
import os

class 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 resultList

if __name__ == '__main__':
    getData = GetDataClass()
    getData.url = 'http://www.baidu.com' #input('请输入url:')
    getData.regex = '.*' #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-8

import GetInfoByRegex
import os

try:
    getData1 = GetInfoByRegex.GetDataClass()
    getData1.url = 'http://www.baidu.com' 	#input('请输入url:')
    getData1.regex = '.*' 		#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






你可能感兴趣的:(Python)