![]() 支柱会员
|
需求:
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 excel整理数据不错 curl分段下载,找到分段点,就能批量切出某些不容易做行匹配的变动部分 findstr /o 显示偏移,挺有用 curl置顶下载 把http://bbs.et8.net/bbs/showthread.php?t=568472老服的这篇教程 实例形式玩了遍,软件教程皆好,感谢老服,别闭关了,人民需要你! 搞来搞去,还是因为网站数据不方便检索 从那里来,到那里去,自动显示最近车站,换乘车站该有多好,随便想想,我不坐车,呵呵 附件为excel文件与合并后的htm文件 此帖于 2005-07-01 16:49:01 被 hitme 编辑. . |
||
![]() 热心会员
|
受不了, 崇拜ing...
你的精华太多了. >_< |
||
![]() 热心会员
|
谢谢。等仔细学习一下。
|
||
![]() 热心会员
|
建议以后hitme老大的批处理帖子就不要加精了,要不精华贴都快赶上有些ccfer的发帖数了,嘿嘿~
|
||
![]() 精品论坛:高谈-阔论-细品-汇精 |
![]() 核心会员
|
for人好啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for + findstr + excel + curl ,嘿嘿 下次会不会动用access呢? ![]() |
||
![]() 支柱会员
|
引用:
![]() 引用:
![]() 引用:
access不会,不过office组件功能都挺。。。。一定用的上。。 |
|||||