Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例


Posted in Python onJanuary 15, 2018

本文实例讲述了Python实现可获取网易页面所有文本信息的网易网络爬虫功能。分享给大家供大家参考,具体如下:

#coding=utf-8
#---------------------------------------
#  程序:网易爬虫
#  作者:ewang
#  日期:2016-7-6
#  语言:Python 2.7
#  功能:获取网易页面中的文本信息并保存到TXT文件中。
#---------------------------------------
import string
import urllib2
import re
import os
class WangYi_Spider:
  #申明相关属性
  def __init__(self):
    #给wangyiUrl属性赋值
    self.wangyiUrl="http://www.163.com/"
    #用来保存页面中文字信息
    self.pageinfor=[]
    print u'已经启动网易爬虫,爬爬...'
  #初始化加载页面并将其转码存储
  def wangyi(self):
    #读取页面的原始信息并将其从gbk转码
    Page=urllib2.urlopen(self.wangyiUrl).read().decode('gbk')
    #获取页面标题
    title=self.find_title(Page)
    print u'网页名称:'+title
    #获取页面中文本信息
    self.save_infor(title)
  #查找页面标题
  def find_title(self,page):
    #匹配<title>xxxx</title>
    myTitle=re.search(r'<title>(.*?)</title>',page,re.S)
    #初始化标题名为暂无标题
    title=u'暂无标题'
    #如果标题存在把标题赋值给title
    if myTitle:
      #(.*?)这称作一个group,组是从1开始
      title=myTitle.group(1)
    else:
      print u'爬虫报告:无法加载网页标题...'
    return title
  #保存页面信息
  def save_infor(self,title):
    #加载页面文本信息到数组中
    self.get_infor()
    #创建并打开本地文件
    f=open(title+'.txt','w+')
    #把获取的页面信息写入文件中
    f.writelines(self.pageinfor)
    #关闭打开的文件
    f.close()
    print u'爬虫报告:文件'+title+'.txt'+u'已经下载:'+os.getcwd()
    print u'按任意键退出...'
    raw_input()
  #获取页面源码并将其存储到数组中
  def get_infor(self):
    #获取页面中的源码
    page=urllib2.urlopen(self.wangyiUrl).read()
    #把页面中的内容gbk解码然后获取页面中所有的文本信息
    self.deal_infor(page.decode('gbk'))
  #从页面代码中获取所需文信息
  def deal_infor(self,page):
    #获取<em >XXX</em>的文本信息XXX
    emTagItems=re.findall("<em.*?>(\W+?)</em>",page,re.S)
    #获取<span>XXXX</a>的文本信息XXXX
    spanTagItems=re.findall("<span>(\W+?)</span>",page,re.S)
    #获取<a .*>XXXX</a>的文本信息XXXX
    aTagItems=re.findall("<a.*?>(\W+?)</a>",page,re.S)
    #把em tag中获取的文本信息添加到数组pageinfor中
    for emItem in emTagItems:
      #对获取的文本信息用gbk进行编码
      self.pageinfor.append(emItem.encode('gbk')+'\n')
    #把span tag中获取的文本信息添加到数组pageinfor中
    for spanItem in spanTagItems:
      #对获取的文本信息用gbk进行编码
      self.pageinfor.append(spanItem.encode('gbk')+'\n')
    #把a tag中获取的文本信息添加到数组pageinfor中
    for aItem in aTagItems:
      #对获取的文本信息用gbk进行编码
      self.pageinfor.append(aItem.encode('gbk')+'\n')
#------------程序入口处----------------
print u"""#---------------------------------------
#  程序:网易爬虫
#  作者:ewang
#  日期:2016-7-6
#  语言:Python 2.7
#  功能:获取网易页面中的文本信息并保存到TXT文件中
#--------------------------------------------------
"""
wangyiSpider=WangYi_Spider()
wangyiSpider.wangyi()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python FTP操作类代码分享
May 13 Python
python中异常捕获方法详解
Mar 03 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
利用ctypes获取numpy数组的指针方法
Feb 12 Python
Django框架会话技术实例分析【Cookie与Session】
May 24 Python
Python中拆分字符串的操作方法
Jul 23 Python
python topk()函数求最大和最小值实例
Apr 02 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
Python爬取网站图片并保存的实现示例
Feb 26 Python
Python办公自动化之Excel(中)
May 24 Python
浅析python中特殊文件和特殊函数
Feb 24 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 Python
Python操作mysql数据库实现增删查改功能的方法
Jan 15 #Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 #Python
python逆向入门教程
Jan 15 #Python
Python3一行代码实现图片文字识别的示例
Jan 15 #Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 #Python
selenium python浏览器多窗口处理代码示例
Jan 15 #Python
100行python代码实现跳一跳辅助程序
Jan 15 #Python
You might like
乱谈我对耳机、音箱的感受
2021/03/02 无线电
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
php图片缩放实现方法
2014/02/20 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
原生JS实现留言板
2020/03/26 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
python实现大学人员管理系统
2019/10/25 Python
python flask中动态URL规则详解
2019/11/22 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
全球性的女装店:storets
2019/06/12 全球购物
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
精彩的推荐信范文
2013/11/26 职场文书
出纳担保书范文
2014/04/02 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书
仙境之桥观后感
2015/06/16 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电
python神经网络 使用Keras构建RNN训练
2022/05/04 Python