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 Tkinter基础控件用法
Sep 03 Python
利用Python中的mock库对Python代码进行模拟测试
Apr 16 Python
讲解Python中if语句的嵌套用法
May 14 Python
使用Python脚本生成随机IP的简单方法
Jul 30 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Python实现感知机(PLA)算法
Dec 20 Python
Python中装饰器高级用法详解
Dec 25 Python
Django restframework 源码分析之认证详解
Feb 22 Python
Python创建字典的八种方式
Feb 27 Python
Python ATM功能实现代码实例
Mar 19 Python
virtualenv介绍及简明教程
Jun 23 Python
python实现会员信息管理系统(List)
Mar 18 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
提取HTML标签
2006/10/09 PHP
PHP的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
PHP消息队列用法实例分析
2016/02/12 PHP
详解php中 === 的使用
2016/10/24 PHP
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
javascript常用的方法分享
2015/07/01 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
python实现画圆功能
2018/01/25 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
python顺序执行多个py文件的方法
2019/06/29 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
大学生职业生涯规划书汇总
2014/03/20 职场文书
校庆活动策划方案
2014/06/05 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
教师师德师风整改措施
2014/10/24 职场文书
商场广播稿范文
2015/08/19 职场文书
2019财务转正述职报告
2019/06/27 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书