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 爬虫出现403禁止访问错误详解
Mar 11 Python
Python实现Youku视频批量下载功能
Mar 14 Python
python之pandas用法大全
Mar 13 Python
python如何通过实例方法名字调用方法
Mar 21 Python
Python变量赋值的秘密分享
Apr 03 Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 Python
示例详解Python3 or Python2 两者之间的差异
Aug 23 Python
Python json模块dumps、loads操作示例
Sep 06 Python
pycharm new project变成灰色的解决方法
Jun 27 Python
Python调用graphviz绘制结构化图形网络示例
Nov 22 Python
python中的垃圾回收(GC)机制
Sep 21 Python
Python Django获取URL中的数据详解
Nov 01 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
PHP伪造referer实例代码
2008/09/20 PHP
php的ddos攻击解决方法
2015/01/08 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
小议Javascript中的this指针
2010/03/18 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
python实现rsa加密实例详解
2017/07/19 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
python获取Pandas列名的几种方法
2019/08/07 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
Django更新models数据库结构步骤
2020/04/01 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
Django实现随机图形验证码的示例
2020/10/15 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
医院志愿者活动总结
2015/05/06 职场文书
个人收入证明格式
2015/06/24 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
canvas实现贪食蛇的实践
2022/02/15 Javascript