Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
本文实例讲述了Python实现可获取网易页面所有文本信息的网易网络爬虫功能。分享给大家供大家参考,具体如下:
#coding=utf-8
#---------------------------------------
#程序:网易爬虫
#作者:ewang
#日期:2016-7-6
#语言:Python2.7
#功能:获取网易页面中的文本信息并保存到TXT文件中。
#---------------------------------------
importstring
importurllib2
importre
importos
classWangYi_Spider:
#申明相关属性
def__init__(self):
#给wangyiUrl属性赋值
self.wangyiUrl="http://www.163.com/"
#用来保存页面中文字信息
self.pageinfor=[]
printu'已经启动网易爬虫,爬爬...'
#初始化加载页面并将其转码存储
defwangyi(self):
#读取页面的原始信息并将其从gbk转码
Page=urllib2.urlopen(self.wangyiUrl).read().decode('gbk')
#获取页面标题
title=self.find_title(Page)
printu'网页名称:'+title
#获取页面中文本信息
self.save_infor(title)
#查找页面标题
deffind_title(self,page):
#匹配xxxx
myTitle=re.search(r'(.*?) ',page,re.S)
#初始化标题名为暂无标题
title=u'暂无标题'
#如果标题存在把标题赋值给title
ifmyTitle:
#(.*?)这称作一个group,组是从1开始
title=myTitle.group(1)
else:
printu'爬虫报告:无法加载网页标题...'
returntitle
#保存页面信息
defsave_infor(self,title):
#加载页面文本信息到数组中
self.get_infor()
#创建并打开本地文件
f=open(title+'.txt','w+')
#把获取的页面信息写入文件中
f.writelines(self.pageinfor)
#关闭打开的文件
f.close()
printu'爬虫报告:文件'+title+'.txt'+u'已经下载:'+os.getcwd()
printu'按任意键退出...'
raw_input()
#获取页面源码并将其存储到数组中
defget_infor(self):
#获取页面中的源码
page=urllib2.urlopen(self.wangyiUrl).read()
#把页面中的内容gbk解码然后获取页面中所有的文本信息
self.deal_infor(page.decode('gbk'))
#从页面代码中获取所需文信息
defdeal_infor(self,page):
#获取XXX的文本信息XXX
emTagItems=re.findall("(\W+?)",page,re.S)
#获取XXXX的文本信息XXXX
spanTagItems=re.findall("(\W+?)",page,re.S)
#获取XXXX的文本信息XXXX
aTagItems=re.findall("(\W+?)",page,re.S)
#把emtag中获取的文本信息添加到数组pageinfor中
foremIteminemTagItems:
#对获取的文本信息用gbk进行编码
self.pageinfor.append(emItem.encode('gbk')+'\n')
#把spantag中获取的文本信息添加到数组pageinfor中
forspanIteminspanTagItems:
#对获取的文本信息用gbk进行编码
self.pageinfor.append(spanItem.encode('gbk')+'\n')
#把atag中获取的文本信息添加到数组pageinfor中
foraIteminaTagItems:
#对获取的文本信息用gbk进行编码
self.pageinfor.append(aItem.encode('gbk')+'\n')
#------------程序入口处----------------
printu"""#---------------------------------------
#程序:网易爬虫
#作者:ewang
#日期:2016-7-6
#语言:Python2.7
#功能:获取网易页面中的文本信息并保存到TXT文件中
#--------------------------------------------------
"""
wangyiSpider=WangYi_Spider()
wangyiSpider.wangyi()
更多关于Python相关内容可查看本站专题:《PythonSocket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。