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 获取文件列表(或是目录例表)
Mar 25 Python
python判断windows系统是32位还是64位的方法
May 11 Python
Python语言实现将图片转化为html页面
Dec 06 Python
Python使用matplotlib实现绘制自定义图形功能示例
Jan 18 Python
python ftp 按目录结构上传下载的实现代码
Sep 12 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
python实现简单flappy bird
Dec 24 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
python exit出错原因整理
Aug 31 Python
Python3获取cookie常用三种方案
Oct 05 Python
Python实战之疫苗研发情况可视化
May 18 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/08/15 PHP
php中stdClass的用法分析
2015/02/27 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
bootstrap网格系统使用方法解析
2017/01/13 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
python实现保存网页到本地示例
2014/03/16 Python
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
python中join()方法介绍
2018/10/11 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
秋季运动会广播稿大全
2014/02/17 职场文书
赔偿协议书范本
2014/04/15 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
2014年检验员工作总结
2014/11/19 职场文书
学雷锋感言
2015/08/03 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
教你怎么用Python监控愉客行车程
2021/04/29 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python