python pyquery不规则数据的抓取_python网页爬虫之列车时刻表的抓取(1)-pyquery

选个解析工具先,正则用起来非常痛苦这是肯定的,htmlparse嘛不喜欢他的那几个接口,用起来好不简洁.还好有人品,无意间瞄见了pyquery,啧啧....真有沙漠里发现泉水的兴奋.

了解了解怎么用先,其实上手挺快的.

官方帮助: http://www.pyquery.org

贴个例子:

#! /usr/bin/env python

#coding=utf-8

from pyquery import PyQuery as pq

# 例子A

d = pq(url=r"http://www.baidu.com") # 读百度的首页.有个好处是能用到本机的代理

x = d("body div#m p#lk a").map(lambda i,e:pq(e).text()) # 遍历解析每个节点

for i in x:

print i.encode('gb18030')

'''输出:

空间

百科

hao123

更多>>

'''

简洁,还是简洁.

小建个数据库用来放取回来的数据,sqlite是首选.

车次数据:

CREATE TABLE "trains_info" (

"ti_train_number" VARCHAR(50) PRIMARY KEY NOT NULL , -- 车次

"ti_runtime" INTEGER, -- 运行时间

"ti_starting_station" VARCHAR(100), -- 始发站

"ti_terminating_station" VARCHAR(100), -- 终点站

"ti_departure_time" DATETIME, -- 出发时刻

"ti_arrival_time" DATETIME, -- 到达时刻

"ti_class" VARCHAR(10), -- 类型

"ti_range" INTEGER -- 里程

);

途经车站数据:

CREATE TABLE [trains_schedule] (

[ts_train_number] varchar(50), -- 车次

[ts_station_seq] INTEGER, -- 站序

[ts_station] VARCHAR(100), -- 站名

[ts_date_count] INTEGER, -- 到站天数

[ts_arrive_time] DATETIME, -- 停车时间

[ts_departure_time] DATETIME, -- 开车时间

[ts_range] INTEGER, -- 里程

[ts_hard_seat] NUMBER, -- 硬座票价

[ts_hard_berth] NUMBER, -- 硬卧中铺票价

[ts_soft_seat] NUMBER, -- 软座票价

[ts_soft_berth] NUMBER, -- 软卧下铺票价

CONSTRAINT [sqlite_autoindex_trains_schedule_1] PRIMARY KEY ([ts_train_number], [ts_station_seq], [ts_station]) -- 组合主键,车次,站序,站名唯一

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值