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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:19   1736   0

选个解析工具先,正则用起来非常痛苦这是肯定的,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 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP