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程序设计入门(1)基本语法简介
Jun 13 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
python 利用栈和队列模拟递归的过程
May 29 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 Python
python3 kmp 字符串匹配的方法
Jul 07 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
python 的 openpyxl模块 读取 Excel文件的方法
Sep 09 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
Python文件时间操作步骤代码详解
Apr 13 Python
Django rest framework如何自定义用户表
Jun 09 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
php知道与问问的采集插件代码
2010/10/12 PHP
php统计文章排行示例
2014/03/04 PHP
两种php实现图片上传的方法
2016/01/22 PHP
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
puppeteer库入门初探
2019/01/09 Javascript
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
python删除文本中行数标签的方法
2018/05/31 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
实习自荐信
2013/10/13 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
祝寿主持词
2015/07/02 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
pt-archiver 主键自增
2022/04/26 MySQL