python 爬虫生成csv文件和图_Python简单爬虫导出CSV文件的实例讲解
流程:模拟登录→获取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)
]*>(.*?)")
#正则解析出td
self.TdExp = re.compile("(?isu)
]*>(.*?)")
#创建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简单爬虫导出CSV文件的实例讲解相关推荐
- python双y轴的折线图_python matplotlib实现双Y轴的实例
python matplotlib实现双Y轴的实例 如下所示: import matplotlib.pyplot as plt import numpy as np x = np.arange(0., ...
- python语言编写一个生成九宫格图片的代码_python简单实现9宫格图片实例
在日常生活中我们经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图. 那么我们如何自己动手实现呢? 说到切图Python 就可以实现,主要用到的 Python ...
- Python自动生成代码 - 通过tkinter图形化操作生成代码框架
Python自动生成代码 - 通过tkinter图形化操作生成代码框架 背景 脚本代码 Demo_CodeGenerator.py display.py FileHandler.py: 脚本运行结果: ...
- ajax 导出文件给 文件重新命名_Tanner LEdit 05 | 导出GDSII文件
「 这是Tanner L-Edit系列的第 5 篇 」本节内容 · 导览 导出GDSII命令介绍 导出文件的演示操作 需要注意的常见问题接着上一节:导入GDSII文件这一节讲如何导出GDSII文件01 ...
- python简易版实例_Python3之简单搭建自带服务器的实例讲解
WEB开发,我们先从搭建一个简单的服务器开始,Python自带服务模块,且python3相比于python2有很大不同, 在Python2.6版本里,/usr/bin/lib/python2.6/ 目 ...
- python识别手写文字_Python3实现简单可学习的手写体识别(实例讲解)
1.前言 版本:Python3.6.1 + PyQt5 + SQL Server 2012 以前一直觉得,机器学习.手写体识别这种程序都是很高大上很难的,直到偶然看到了这个视频,听了老师讲的思路后,瞬 ...
- 使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)
使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件) 使用beep播放mp3文件(10num) 使用go语言GUI库fyne实现音乐播放器 要是想使用go语言实现播放mp3需要借助be ...
- python的scrapy爬虫模块间进行传参_Python | Scrapy 爬虫过程问题解决(持续更新...)...
1.使用python的re模块过滤html标签 In [1]: response.xpath("//div[@class='zx-dis_content']/p").extract ...
- python合并两个列表并去重_python合并多个txt文件
python合并多个txt文件 #合并一个文件夹下的多个txt文件 #coding=utf-8 import os #获取目标文件夹的路径 filedir = os.getcwd()+'\\数据' # ...
- Python之——生成动态路由轨迹图
一.scapy简介与安装 scapy( http://www.secdev.org/projects/scapy/)是一个强大的交互式数据包处理程序,它能够对数据包进行伪造或解包,包括发送数据包.包嗅 ...
最新文章
- C# vs C++ 全局照明渲染性能比试
- java求最优解库,IPOPT在第二次求解时找到最优解
- springboot pom文件添加mysql组件_SpringBoot整合mybatis-plus+druid组件,实现增删改查
- 配置php7开发环境,Windows7系统环境安装配置PHP开发环境
- preview一直不显示,无法和代码同步变化
- MCU程序布局----优化升级方式
- 伊甸园日历游戏 飘飘乎居士拯救MM(tyvj 1968 1140)
- 美国留学访学(访问学者)必备信用卡
- java 调用弗雷_JAVA 学习笔记
- 2021年质量员-设备方向-通用基础(质量员)考试总结及质量员-设备方向-通用基础(质量员)模拟考试题库
- ENFP型人格的特征分析(mbti性格测试)
- android fstrim命令,满血复活:安卓4.3为所有Nexus带来TRIM
- 【公平锁和非公平锁有什么区别?】
- 宽带提速后如何恰如其分的选择路由器?
- 陕西省建筑标准规范合集
- 保姆级 Java 后端线上问题排查常用命令收藏
- Java生成PDF文件并使用指定的模板,带图片
- SAP系统权限配置一
- java开发一个连连看小游戏
- bos 获取数据库连接_EAS-BOS表头-分录多表开发高级教程
热门文章
- 1018. Binary Prefix Divisible By 5可被 5 整除的二进制前缀
- [转自华尔街的强帖]怎样才能嫁给有钱人
- 如何让git小乌龟工具TortoiseGit记住你的账号密码
- kafka入门:简介、使用场景、设计原理
- Android上使用MP3格式录制声音
- centos 6.5 找回root密码的方法
- 输入法弹出,屏幕自动适应
- linux fedora frebsd centos linux as 安装出错
- aud删除 oracle_Oracle 11g如何清理数据库的历史日志详解
- oracle表修改语句怎么写,Oracle修改表结构语句