Chinaunix首页 | 论坛 | 博客
  • 博客访问: 206310
  • 博文数量: 48
  • 博客积分: 1935
  • 博客等级: 上尉
  • 技术积分: 491
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-29 00:59
文章分类

全部博文(48)

文章存档

2011年(1)

2010年(47)

我的朋友

分类: Python/Ruby

2010-09-21 00:55:24

python网页爬虫之列车时刻表的抓取(1)-pyquery
2010-05-30 15:35

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

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

       官方帮助:

贴个例子:
#! /usr/bin/env python
#coding=utf-8
from pyquery import PyQuery as pq
# 例子A
d = pq(url=r"") # 读百度的首页.有个好处是能用到本机的代理
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]) -- 组合主键,车次,站序,站名唯一
);
阅读(4015) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~