ruby爬虫
一个快速得到回家火车票的方法
Update(2010/02/07): 火车票已经买到,不过不是通过这种方式搞到的,是自己排队加托人才搞到的,票贩子太猖獗了。
就是抓抓抓抓抓抓抓抓抓抓抓抓抓抓抓抓……..
require ' rubygems ' require ' hpricot ' require ' open-uri ' require ' active_support ' require ' action_mailer ' $KCODE = ' u ' require ' jcode ' require ' tlsmail ' #need install tlsmail gem to support TLS connect Net :: SMTP .enable_tls( OpenSSL :: SSL :: VERIFY_NONE ) ActionMailer :: Base .smtp_settings = { :address => ' smtp.gmail.com ' , #default: localhost :port => ' 25 ' , #default: 25 :user_name => ' xxxx@gmail.com ' , #login name :password => ' xxxx ' , #login password :authentication => :login #:plain, :login or :cram_md5 } class SimpleMailer < ActionMailer :: Base def simple_message (recipient, mail_subject, mail_body) from ' weekface@gmail.com ' recipients recipient subject mail_subject body mail_body end end url = " http://shenghuo.google.cn/shenghuo/search?a_y0=9&a_n0=%E7%81%AB%E8%BD%A6%E7%A5%A8&view=Table&a_n1=%E5%A7%8B%E5%8F%91%E7%AB%99&a_y1=1&a_o1=0&a_v1=%E5%8C%97%E4%BA%AC&a_n2=%E5%88%B0%E8%BE%BE%E7%AB%99&a_y2=1&a_o2=0&a_v2=%E9%82%AF%E9%83%B8 " doc = Hpricot(open(url)) arivals = [] doc.search( " tr.cssf " ).each do |ht| match = ht.to_s.match( / ( \d )张 发车日期:2010-02-( \d \d ) / m ) match_time = ht.to_s.match( / <td> \s ?( \d +)分钟前 / ) if match_time if match && match[ 1 ].to_i > 1 && (match[ 2 ].to_i == 11 || match[ 2 ].to_i == 12 ) && match_time[ 1 ].to_i <= 60 a = ht.search( " td>a " ) SimpleMailer .deliver_simple_message ' weekface@gmail.com ' , a.first.inner_html, a.first.attributes[ ' href ' ] end end end
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did43471