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网络爬虫出现乱码问题的解决方法
Jan 05 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
深入理解Python单元测试unittest的使用示例
Nov 18 Python
Python制作词云的方法
Jan 03 Python
基于python 处理中文路径的终极解决方法
Apr 12 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
python设置环境变量的作用和实例
Jul 09 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
解决Django连接db遇到的问题
Aug 29 Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 Python
Python中requests库的用法详解
Jun 05 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
sphinx增量索引的一个问题
2011/06/14 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
javascript与webservice的通信实现代码
2010/12/25 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
Python中的高级数据结构详解
2015/03/27 Python
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
Python实现Linux中的du命令
2017/06/12 Python
Python 多线程的实例详解
2017/09/07 Python
python异步存储数据详解
2019/03/19 Python
Python3列表List入门知识附实例
2020/02/09 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
如何用Python徒手写线性回归
2021/01/25 Python
CSS3 实现雷达扫描图的示例代码
2020/09/21 HTML / CSS
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
珍珠鸟教学反思
2014/02/01 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
领导离职感言
2015/08/03 职场文书
班主任工作总结范文
2015/08/13 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP