Python简单爬虫导出CSV文件的实例讲解


Posted in Python onJuly 06, 2018

流程:模拟登录→获取Html页面→正则解析所有符合条件的行→逐一将符合条件的行的所有列存入到CSVData[]临时变量中→写入到CSV文件中

核心代码:

####写入Csv文件中
      with open(self.CsvFileName, 'wb') as csvfile:
        spamwriter = csv.writer(csvfile, dialect='excel')
        #设置标题
        spamwriter.writerow(["游戏账号","用户类型","游戏名称","渠道","充值类型","充值金额","返利金额","单号","日期"])
        #将CsvData中的数据循环写入到CsvFileName文件中
        for item in self.CsvData:
          spamwriter.writerow(item)

完整代码:

# coding=utf-8
import urllib
import urllib2
import cookielib
import re
import csv
import sys
 
class Pyw():
  #初始化数据
  def __init__(self):
    #登录的Url地址
    self.LoginUrl="http://v.pyw.cn/login/check"
    #所要获取的Url地址
    self.PageUrl="http://v.pyw.cn/Data/accountdetail/%s"
    # 传输的数据:用户名、密码、是否记住用户名
    self.PostData = urllib.urlencode({
      "username": "15880xxxxxx",
      "password": "a123456",
      "remember": "1"
    })
    #第几笔记录
    self.PageIndex=0;
    #循环获取共4页内容
    self.PageTotal=1
    #正则解析出tr
    self.TrExp=re.compile("(?isu)<tr[^>]*>(.*?)</tr>")
    #正则解析出td
    self.TdExp = re.compile("(?isu)<td[^>]*>(.*?)</td>")
    #创建cookie
    self.cookie = cookielib.CookieJar()
    #构建opener
    self.opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie))
    #解析页面总页数
    self.Total=4
    #####设置csv文件
    self.CsvFileName="Pyw.csv"
    #####存储Csv数据
    self.CsvData=[]
 
   #解析网页中的内容
  def GetPageItem(self,PageHtml):
    #循环取出Table中的所有行
    for row in self.TrExp.findall(PageHtml):
      #取出当前行的所有列
      coloumn=self.TdExp.findall(row)
      #判断符合的记录
      if len(coloumn) == 9:
        # print "游戏账号:%s" % coloumn[0].strip()
        # print "用户类型:%s" % coloumn[1].strip()
        # print "游戏名称:%s" % coloumn[2].strip()
        # print "渠道:%s" % coloumn[3].strip()
        # print "充值类型:%s" % coloumn[4].strip()
        # print "充值金额:%s" % coloumn[5].strip().replace("¥", "")
        # print "返利金额:%s" % coloumn[6].strip().replace("¥", "")
        # print "单号:%s" % coloumn[7].strip()
        # print "日期:%s" % coloumn[8].strip()
        #拼凑行数据
        d=[coloumn[0].strip(),
          coloumn[1].strip(),
          coloumn[2].strip(),
          coloumn[3].strip(),
          coloumn[4].strip(),
          coloumn[5].strip().replace("¥", ""),
          coloumn[6].strip().replace("¥", ""),
          coloumn[7].strip(),
          coloumn[8].strip()]
        self.CsvData.append(d)
 
  #模拟登录并获取页面数据
  def GetPageHtml(self):
    try:
      #模拟登录
      request=urllib2.Request(url=self.LoginUrl,data=self.PostData)
      ResultHtml=self.opener.open(request)
      #开始执行获取页面数据
      while self.PageTotal<=self.Total:
        #动态拼凑所要解析的Url
        m_PageUrl = self.PageUrl % self.PageTotal
        #计算当期第几页
        self.PageTotal = self.PageTotal + 1
        #获取当前解析页面的所有内容
        ResultHtml=self.opener.open(m_PageUrl)
        #解析网页中的内容
        self.GetPageItem(ResultHtml.read())
 
      ####写入Csv文件中
      with open(self.CsvFileName, 'wb') as csvfile:
        spamwriter = csv.writer(csvfile, dialect='excel')
        #设置标题
        spamwriter.writerow(["游戏账号","用户类型","游戏名称","渠道","充值类型","充值金额","返利金额","单号","日期"])
        #将CsvData中的数据循环写入到CsvFileName文件中
        for item in self.CsvData:
          spamwriter.writerow(item)
 
      print "成功导出CSV文件!"
    except Exception,e:
      print "404 error!%s" % e
#实例化类
p=Pyw()
#执行方法
p.GetPageHtml()

导出结果

Python简单爬虫导出CSV文件的实例讲解

以上这篇Python简单爬虫导出CSV文件的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
python使用reportlab实现图片转换成pdf的方法
May 22 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
Aug 18 Python
python tensorflow学习之识别单张图片的实现的示例
Feb 09 Python
在python中画正态分布图像的实例
Jul 08 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
python实现飞船大战
Apr 24 Python
django的autoreload机制实现
Jun 03 Python
使用Keras训练好的.h5模型来测试一个实例
Jul 06 Python
Python学习工具jupyter notebook安装及用法解析
Oct 23 Python
Python中如何处理常见报错
Jan 18 Python
Python实现的从右到左字符串替换方法示例
Jul 06 #Python
Python用csv写入文件_消除空余行的方法
Jul 06 #Python
Python实现string字符串连接的方法总结【8种方式】
Jul 06 #Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 #Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 #Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 #Python
python selenium自动上传有赞单号的操作方法
Jul 05 #Python
You might like
弄了个检测传输的参数是否为数字的Function
2006/12/06 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
php实现的短网址算法分享
2014/06/20 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
浅谈Node 调试工具入门教程
2018/03/20 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Python连接PostgreSQL数据库的方法
2016/11/28 Python
详解Python sys.argv使用方法
2019/05/10 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
python字符串下标与切片及使用方法
2020/02/13 Python
Python类成员继承重写的实现
2020/09/16 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
服务口号大全
2014/06/11 职场文书
学生干部培训方案
2014/06/12 职场文书
房屋出租委托书格式
2014/09/23 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
MySql分区类型及创建分区的方法
2022/04/13 MySQL
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android