. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 关闭主题
 
主题工具
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#1 旧 2005-07-01, 16:29:38 默认 【原创】cmd下重组网站htm页面
hitme 当前离线  

需求:
1.自动抓取公交信息 http://www.shanghaibus.net/XLZN/SHANGHAIBUSCLZN.htm
2.整整格式,合并所有htm页面,剔除信息(页眉,车辆挡案信息,只保留票价与车站),方便搜索用途

思路分析:
先简单看下,欲搞到所有页面的url
可是...
页面不统一,瞧着显示出来差不多,htm代码却...不便用curl+findstr匹配
没用的url也有一些,例如一些改名线路,幸好都分块分布,手工删除也不麻烦

01-987路车,8个大类,for+findstr匹配搞来嫌烦,出动excel了
复制url,如

http://www.shanghaibus.net/XLZN/SHANGHAIBUSXLZN001-199.htm
http://www.shanghaibus.net/XLZN/SHANGHAIBUSXLZN201-401.htm
....

excel中分工作表,数据,获取外部数据,新建web查询,注意勾取保留完全html格式选项
剔除垃圾信息(边列,改名线路等) 没几页,还好,工作量不大,鼠标点点
另存为web页,设1.htm。搞定,被excel整过的href信息容易匹配多了
代码:
findstr "http://www\.shanghaibus\.net/XLZN/" 1.files\sheet*.htm
检查下

1.files\sheet001.htm: href="http://www.shanghaibus.net/XLZN/XLZN001-199/SHXLZN-006.htm"
1.files\sheet001.htm: href="http://www.shanghaibus.net/XLZN/XLZN001-199/SHXLZN-008.htm"
1.files\sheet001.htm: href="http://www.shanghaibus.net/XLZN/XLZN001-199/SHXLZN-011.htm"
1.files\sheet001.htm: href="http://www.shanghaibus.net/XLZN/XLZN001-199/SHXLZN-013.htm"
....

不错,正是想要的

接下来,该下载了,检查其中某些页面http://www.shanghaibus.net/XLZN/XLZN201-499/SHXLZN-210.HTM
发现问题了,有用信息(红色线路,兰色站点部分)并不存在于各个页面的固定部分,htm代码也有差别,估计是站点制作的历史原因

奶奶的,某些行还超过了255个字节限制,findstr匹配不上或缺失,极度不爽,怎么办?
疯狂尝试,一定要坚持,无聊摆弄curl中。。发现curl -r 可以分块下载,把htm页面切割了,找到前后切割点不就。。。嘿嘿,我真聪明

页眉logo部分比较统一,findstr /o看了下大约偏移997,记下,暂用它,有洁痞的。。嘿嘿,我不搞了,拉屎去
车辆档案部分我也不要,切掉

取得url,边下边切边合并,hoho,整理下脚本,测试

代码:
@echo off
findstr "http://www\.shanghaibus\.net/XLZN/" 1.files\sheet*.htm >tmp.txt
for /f "tokens=2 delims==" %%i in (tmp.txt) do (	
						curl %%i |findstr /o "车辆档案"	2>nul >tmp1.txt			
						for /f "delims=:" %%a in (tmp1.txt) do (
											curl -r 997-%%a %%i>>list.htm
						)
				
)
del tmp*.txt
脚本并不完善,需求来自一个pm,这里只讨论下思路
excel整理数据不错
curl分段下载,找到分段点,就能批量切出某些不容易做行匹配的变动部分
findstr /o 显示偏移,挺有用

curl置顶下载
把http://bbs.et8.net/bbs/showthread.php?t=568472老服的这篇教程
实例形式玩了遍,软件教程皆好,感谢老服,别闭关了,人民需要你!

搞来搞去,还是因为网站数据不方便检索
从那里来,到那里去,自动显示最近车站,换乘车站该有多好,随便想想,我不坐车,呵呵

附件为excel文件与合并后的htm文件
上传的附件
文件类型: rar 1.rar (19.2 KB, 25 次查看)
文件类型: rar list.rar (124.2 KB, 28 次查看)

此帖于 2005-07-01 16:49:01 被 hitme 编辑. .
DosLover
 
DosLover 的头像
热心会员
 
资 料:
注册日期: Feb 2004
帖子: 18,088 声望值: 3
精华: 1,解答: 2
#2 旧 2005-07-01, 17:06:08 默认
DosLover 当前离线  

受不了, 崇拜ing...
你的精华太多了. >_<
zzhikang
 
zzhikang 的头像
热心会员
 
资 料:
注册日期: Jun 2002
帖子: 5,356 声望值: 3
精华: 1,解答: 6
#3 旧 2005-07-01, 20:34:42 默认
zzhikang 当前离线  

谢谢。等仔细学习一下。
流日
 
流日 的头像
热心会员
 
资 料:
注册日期: Jun 2002
帖子: 4,700 声望值: 5
精华: 0,解答: 4
#4 旧 2005-07-01, 21:36:32 默认
流日 当前离线  

建议以后hitme老大的批处理帖子就不要加精了,要不精华贴都快赶上有些ccfer的发帖数了,嘿嘿~


精品论坛:高谈-阔论-细品-汇精
smallfrogs
 
smallfrogs 的头像
核心会员
 
资 料:
注册日期: Oct 2001
帖子: 3,898 声望值: 2
精华: 20,解答: 3
#5 旧 2005-07-02, 00:06:31 默认
smallfrogs 当前离线  

for人好啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

for + findstr + excel + curl ,嘿嘿

下次会不会动用access呢?


Everything is possible. Nothing is impossible.
KZTechs.COM, Reloaded
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#6 旧 2005-07-02, 10:46:55 默认
hitme 当前离线  

引用:
作者: DosLover
受不了, 崇拜ing...
你的精华太多了. >_<
瞧把你羡慕的

引用:
作者: 流日
建议以后hitme老大的批处理帖子就不要加精了,要不精华贴都快赶上有些ccfer的发帖数了,嘿嘿~
...打击我积极性

引用:
作者: smallfrogs
for人好啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

for + findstr + excel + curl ,嘿嘿

下次会不会动用access呢?
嘿嘿,就会摆弄这几个了
access不会,不过office组件功能都挺。。。。一定用的上。。
发表新主题 关闭主题

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 20:14:04.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号