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实现随机密码字典生成器示例
Apr 09 Python
python根据日期返回星期几的方法
Jul 06 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
python下读取公私钥做加解密实例详解
Mar 29 Python
Python实现求笛卡尔乘积的方法
Sep 16 Python
Python操作MySQL模拟银行转账
Mar 12 Python
python实现淘宝购物系统
Oct 25 Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
Mar 09 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
Pycharm操作Git及GitHub的步骤详解
Oct 27 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
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
use jscript Create a SQL Server database
2007/06/16 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
python记录程序运行时间的三种方法
2017/07/14 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
python多进程并行代码实例
2019/09/30 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
Python 如何在字符串中插入变量
2020/08/01 Python
五种Python转义表示法
2020/11/27 Python
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
免税水晶:Duty Free Crystal
2019/05/13 全球购物
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
中学老师的自我评价
2013/11/07 职场文书
光荣入党自我鉴定
2014/01/22 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
房屋买卖协议样本
2014/11/16 职场文书
转让协议书
2015/01/27 职场文书
升职自荐书
2019/05/09 职场文书
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python