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操作MongoDB数据库PyMongo库使用方法
Apr 27 Python
Python3使用requests发闪存的方法
May 11 Python
使用python实现tcp自动重连
Jul 02 Python
django文档学习之applications使用详解
Jan 29 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
正则给header的冒号两边参数添加单引号(Python请求用)
Aug 09 Python
python实现BP神经网络回归预测模型
Aug 09 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
Mar 31 Python
pycharm下pyqt4安装及环境配置的教程
Apr 24 Python
Django 解决阿里云部署同步数据库报错的问题
May 14 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 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中如何在有限的内存中读取大文件
2013/07/02 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
php自定义错误处理用法实例
2015/03/20 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
JS定时器实例
2013/04/17 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
在vue项目中引用Iview的方法
2018/09/14 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
通过数据库向Django模型添加字段的示例
2015/07/21 Python
Python数组遍历的简单实现方法小结
2016/04/27 Python
利用aardio给python编写图形界面
2017/08/21 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
html5 学习简单的拾色器
2010/09/03 HTML / CSS
汇集了世界上最好的天然和有机美容产品:LoveLula
2018/02/05 全球购物
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
采购内勤岗位职责
2013/12/10 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
感谢信怎么写
2015/01/21 职场文书
简历自我评价优缺点
2015/03/11 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
同事去世追悼词
2015/06/23 职场文书
Redis集群新增、删除节点以及动态增加内存的方法
2021/09/04 Redis