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

yipeiwu_com5年前Python爬虫

本文实例讲述了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编写简单的微博爬虫

先说点题外话,我一开始想使用Sina Weibo API来获取微博内容,但后来发现新浪微博的API限制实在太多,大家感受一下: 只能获取当前授权的用户(就是自己),而且只能返回最新的...

python 日志增量抓取实现方法

实例如下所示: import time import pickle import os import re class LogIncScaner(object): def __i...

Python 制作糗事百科爬虫实例

Python 制作糗事百科爬虫实例

早上起来闲来无事做,莫名其妙的就弹出了糗事百科的段子,转念一想既然你送上门来,那我就写个爬虫到你网站上爬一爬吧,一来当做练练手,二来也算找点乐子。 其实这两天也正在接触数据库的内容,可以...

Python实现爬取知乎神回复简单爬虫代码分享

Python实现爬取知乎神回复简单爬虫代码分享

看知乎的时候发现了一个 “如何正确地吐槽” 收藏夹,里面的一些神回复实在很搞笑,但是一页一页地看又有点麻烦,而且每次都要打开网页,于是想如果全部爬下来到一个文件里面,是不是看起来很爽,并且...

python爬虫-模拟微博登录功能

python爬虫-模拟微博登录功能

微博模拟登录 这是本次爬取的网址:https://weibo.com/ 一、请求分析 找到登录的位置,填写用户名密码进行登录操作 看看这次请求响应的数据是什么 这是响应得到的数据,保...