Perl 板


LINE

最近用Web::Scraper抓WIKI编辑纪录的时间和编辑者 抓下来输出的档案像这样: 20141121 20141115 20141030 20140928 Adam Jack Mary Bill 每个编辑者对应到的日期顺序一致(例如Adam对应到的日期就是20141121 Jack对应到的就 是20141115)我想让输出档案变成以下这种形式: 20141121 Adam 20141115 Jack 20141030 Mary 20140928 Bill 还有一点就是我有设定一个截止日 例如我设20141101为截止日的话大於这个日期的时间 便不会列印(只列印20140928和20141030)但编辑者的部分还是全部都会列印 我想做的是大於截止日的编辑者也不要列印出来 请问一下要同时达到这两件事该怎麽写? 附上是我的程式码: use warnings; use URI; use Web::Scraper; my @user; my %ss=(); my $url = "http://ppt.cc/E84~"; my $worker = scraper { process ".mw-changeslist-date", "editdate[]" => "TEXT"; #这里是抓日期 }; my $worker2 = scraper { process ".mw-userlink", "username[]" => "TEXT"; #这里是抓编辑者 }; my $FILE; open(FILE,">test7.txt"); my $result = $worker->scrape( URI->new($url) ); my $result2 = $worker2->scrape( URI->new($url) ); print "Starting...\n"; for my $changeslist ( @{ $result->{editdate} } ) { #以下开始一整段是将抓 my ($d, $m, $y)=$changeslist=~m|, (\d+) (\w+) (\d+)|; 到的日期转换成数字比 大小 $ss{'January'}='01'; $ss{'February'}='02'; $ss{'March'}='03'; $ss{'April'}='04'; $ss{'May'}='05'; $ss{'June'}='06'; $ss{'July'}='07'; $ss{'August'}='08'; $ss{'September'}='09'; $ss{'October'}='10'; $ss{'November'}='11'; $ss{'December'}='12'; if ($d < 10 ) { $d="0$d";}; $date1=$y.$ss{$m}.$d; $date2="20141126"; print "date1=$date1\n"; if ( $date1 lt $date2 ){ print FILE "$date1\n"; #印出比截止日小的日期 } } for my $userlink ( @{ $result2->{username} } ) { my ($name)="$userlink"; print FILE "$name\n"; #印出抓到的编辑者 } close (FILE) --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.169.23.68
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Perl/M.1422456977.A.8B1.html
1F:推 CindyLinz: 可以宣告额外变数 my(@date, @author); 然後把现在的 01/28 23:10
2F:→ CindyLinz: print FILE "$date1\n"; 改成 push @date, $date1; 01/28 23:10
3F:→ CindyLinz: 把 print FILE "$name\n"; 改成 push @author, $name; 01/28 23:10
4F:→ CindyLinz: 最後再放一个回圈, for my $i (0..$#date) 01/28 23:11
5F:→ CindyLinz: 印 "$author[$i]\n" 到你要输出的档案里面 01/28 23:12
6F:→ CindyLinz: 欸等等... date 没有按照一定顺序哄 XD 01/28 23:12
7F:→ CindyLinz: 那把 if ( $date1 lt $date2 ){..} 改成 01/28 23:13
8F:→ CindyLinz: push @date, $date1 lt $date2; 01/28 23:13
9F:→ CindyLinz: 最後的回圈里面用 print "$author[$i]\n"if($date[$i]) 01/28 23:13
问题已解决 感谢大大~ ※ 编辑: DJJERRY (140.124.42.128), 01/29/2015 14:10:21







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP