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编程中的运用实例
Jun 26 Python
Python之父谈Python的未来形式
Jul 01 Python
Python 列表(List) 的三种遍历方法实例 详解
Apr 15 Python
python运行其他程序的实现方法
Jul 14 Python
python3中os.path模块下常用的用法总结【推荐】
Sep 16 Python
python爬虫获取小区经纬度以及结构化地址
Dec 30 Python
Pandas之MultiIndex对象的示例详解
Jun 25 Python
python返回数组的索引实例
Nov 28 Python
python实现图像外边界跟踪操作
Jul 13 Python
pandas to_excel 添加颜色操作
Jul 14 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
一文读懂python Scrapy爬虫框架
Feb 24 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
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
PHP7新功能总结
2019/04/14 PHP
javascript操作css属性
2013/12/30 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
python进阶教程之异常处理
2014/08/30 Python
Python读取mp3中ID3信息的方法
2015/03/05 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
抽象方法、抽象类怎样声明
2014/10/25 面试题
幼儿园三八妇女节活动方案
2014/03/11 职场文书
小学运动会演讲稿
2014/08/25 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
解放思想演讲稿
2014/09/11 职场文书
颐和园英文导游词
2015/01/30 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
辞职信格式范文
2015/05/13 职场文书
护理工作心得体会
2016/01/22 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
python 中的@运算符使用
2021/05/26 Python
Redis过期数据是否会被立马删除
2022/07/23 Redis