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中使用hashlib模块处理算法的教程
Apr 28 Python
Python实现将数据库一键导出为Excel表格的实例
Dec 30 Python
python实现电脑自动关机
Jun 20 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
Jan 23 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
Django中modelform组件实例用法总结
Feb 10 Python
信号生成及DFT的python实现方式
Feb 25 Python
Python实现屏幕录制功能的代码
Mar 02 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
Django自关联实现多级联动查询实例
May 19 Python
Django实现文章详情页面跳转代码实例
Sep 16 Python
python 批量将中文名转换为拼音
Feb 07 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
Vue 一键清空表单的实现方法
2020/02/07 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python脚本实现验证码识别
2018/06/07 Python
对python 自定义协议的方法详解
2019/02/13 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
python求前n个阶乘的和实例
2020/04/02 Python
如何使用Python调整图像大小
2020/09/26 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
什么是会话Bean
2015/05/14 面试题
九州传奇上机题
2014/07/10 面试题
开业典礼主持词
2014/03/21 职场文书
如何写好自荐信
2014/04/07 职场文书
秋天的雨教学反思
2014/04/27 职场文书
自强之星事迹材料
2014/05/12 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书