爬虫在游戏数据分析的一个实践

在实际工作中,数据的来源不能局限于自家的数据库或者成型的后台,在做某些市场分析或是竞争对手开服节奏分析的情况下,对竞争对手数据的获得显得更为至关重要,本文就以获取某大平台开服数据作为一个案例,简要的介绍另一种获取数据的方法,网络爬虫技术。

何为网络爬虫,爬虫是一个自动提取网页的程序,为搜索引擎在万维网上下载网页,是搜索引擎的重要组成部分。简单的讲就是从一个或若干个初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的某些停止条件。

本文利用爬虫收集各大平台开服数据列表上的相关数据,减去了在收集开服数据的繁琐,以下就是一个简单爬虫及正则的例子,从某知名页游平台上抓取开服数据。爬起中文数据常有的问题就是不规格的编码模式,这需要在程序的编写过程中注意编码转换。

在此之前简要的讲一下获取数据的另一个重要内容,正则表达式。正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。正则表达式元字符及语法可以在http://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx详细查阅。

使用python编写爬虫程序,导入相应的模块urllib2,使用urlopen下载网页,在网页中使用正则获得想要获得相应的数据。

简要的介绍urllib2模块中用到的方法,

urllib.urlopen(url[, data[, proxies]]) :

url: 表示远程数据的路径

data: 以post方式提交到url的数据

proxies:用于设置代理

urlopen返回对象提供方法:

read() , readline() ,readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样

info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息

getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到

geturl():返回请求的url

import urllib2

import re

msg=urllib2.urlopen('http://www.****.com/').read()

res=re.findall('tr>[\s\S]*?target=\"_blank\" class=\"cred\">(.*?)(.*?)[\s\S]*?

',msg)

for res1 in res:

for res2 in res1

print res2.decode('utf-8')

1

用MySQL储存数据,先要在自己的数据库里建立一个空表,这里我建立了一个名为KFdata的数据库,表名为data_one,相应的在python中导入相应的MySQL模块,并与相应数据库连接,将数据写入数据库。

import MySQLdb

db=MySQLdb.connect(host="localhost",user="root",password="123456",db="KFdata",use_unicode=1,charset='utf-8')

cursor=db.cursor()

for i in range(20):

cursor.execute("insert into data_one values(%s,%s,%s,%s,%s,%s,%s,%s)",(id[i],'h',index[i],time1[i],size[i],hit[i],lz[i],title1[i]))

转载请注明来源:http://www.gamedatas.com

原文地址:http://www.gamedatas.com/archives/73

游戏数据分析微信

转载于:https://www.cnblogs.com/gamedatas/p/3858165.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值