用python搞数模_【IT专家】当Python与数模相遇

本文由我司收集整编,推荐下载,如有疑问,请与我司联系

Python

与数模相遇

2013/07/24 0

数模有一个题目要处理杭州自行车在每个站点可用数量和已经借

出数量,这数据在

hzbus

上可以获取,它是

10

分钟更新一次的。这些数据手动获

取,需要不停的刷页面,从

6

00am

9:00pm,

显然不可取。

先用

Chrome

抓包,

找到了相应数据的页面

URL

,然后写个脚本把此

URL

html

代码,并且设置计时

器,保存到本地

;

分析

html

代码,获得数据所在处的特点,然后写个脚本提取它

们,并保存到指定文件中

. 3.

计时:

10

分钟计时一次,我使用

sleep

函数,不过

urllib

那里的

response

时间要好几秒,这会积少成多导致计时不准确,需要

sleep

时候减

去消耗的时间。另外发现

sleep

函数比设定时间多

sleep2

秒,不知道为什么

4.

本地

数据处理:自行车数量,总数是

21

,不过已经借出数量(

data1

)和可用数量

(data2)

,可能是

1

位数,可能是

2

位数,需要分类讨论。用正则的话,第一我不熟

练,第二没必要。用

filter

函数过滤出所有数字,发现除了需要的两个

data

,还有

html

页面中的

font-size

,吐槽一下写那个页面的人,

css

什么的没有完全分离。

。然

后获取的数据可以是

122112012

也可以是

120122112

两种情况,都是先去掉首尾的

12

(表示字体大小

)

然后发现两个

data

之间的

12

,也是字体大小,判断,如果

filter

之后的子串

s[4:6]

12

那么表示

data1

是两位数,

data2

取后几位就好;如果

s[3:5]

12

那么表示

data1

是一位数

,...

5.

然后是遍历所有保存的

html

文件了,

(其实我保

存为

小时

-

分钟

.txt”

的格式)

,发现

os

模块的

listdir

和系统的

dir

或者

linux

ls

令一样,都是按照文件名字按顺序列出,这就省去了我们自行处理。

#filename=“D:/02-54.txt”resultfile=“D:/result/result.txt” #

最终所有处理好的数据存储的

文件

f=open(resultfile,”a”)

#a:

append

,追加模式

for

filename

in

allfile:

file=open(“D:/data/”+filename)

for

i

in

range(1,89):

line=file.readline()

if

i==88:

result=filter(str.isdigit,

line)

if

result[4:6]==“12”:

data1=result[2:4]

data2=result[6:len(result)-2]

f.write(“%s

%s\n”

%

(data1,

data2))

if

result[3:5]==“12”:

data1=result[2:3] data2=result[5:len(result)-2] f.write(“%s %s\n” % (data1, data2))tips:

谢大家的阅读,本文由我司收集整编。仅供参阅!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值