zoukankan      html  css  js  c++  java
  • ruby nokogiri 数据抓取

    记录测试代码

    require 'open-uri'
    require 'nokogiri'
    require 'pp'
    require 'json'
    
    
    weburl = {}
    weburl['sinawbo'] = 'http://hot.weibo.com/?leftnav=1'  #新浪热门微博
    weburl['bk'] = 'http://www.qiushibaike.com/8hr/page/'  #bk
    def getInfo(key,url)
        if key == 'sinawbo'
            pp 'SINAWBO~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
            doc = Nokogiri::HTML(open(url),nil,'utf-8')                     #获取页面数据对象
            doc.search("//div[@class = 'WB_feed']//div[@class = 'WB_feed_type SW_fun type_intimate feed_list']").each_with_index do |div,index|
                pp index
                webhref = div.css('div')[3]
                puts webhref.css('a').attr('href')                          #获取属性
                webtext = div.css('div')[4]
                pp webtext.text.encode('gbk')        
                link = div.css('div')[5]
                if link.get_attribute('class') == "chePicMin S_bg2 bigcursor"
                    pp link.css('img')[0].get_attribute('src')              #获取属性
                end
                
            end
        elsif key == 'bk'
            pp "BK~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
            for i in 1..10 do
                url1 = url
                url1 = url1 +i.to_s+'/'
                doc = Nokogiri::HTML(open(url1),nil,'utf-8')
                bkcontent = doc.search("//div[@class = 'content-block']//div[@class = 'col1']")
                tag = 1
                bkcontent.css('div').each do |info,key|
                    if info.get_attribute('class') == 'content'
                        pp tag
                        tag +=1
                        puts info.text.encode('gbk')
                        end
                    
                    end
                end       
        end
    end
        
    
    def main(arr)
        arr.each do |key,value|
             getInfo(key,value)
         end
    end
        
    main(weburl)                    #运行函数

    输出内容为

    "SINAWBO~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
    0
    http://weibo.com/2210168325
    "【春晚节目单】【权威发布】经过蛇年春晚五次联排后的节目调整与修改,权威敲定版春晚节目单终于新鲜出炉。速速收藏之。三天后咱一起拿着节目单看春晚!最后啰嗦一句,虽是权威敲定版,也请以最终直播为准哈~"
    "http://ww1.sinaimg.cn/thumbnail/83bc7e05jw1e1ji3716ybj.jpg"
    1
    http://weibo.com/nimui
    "昨天跟一朋友聊天,他问我:”你希望谈一个长久的吗?“ 我心里万般感触,回想了下自己的恋情,写下了这篇《谈一场不分手的恋爱》送给你们。"
    "http://ww1.sinaimg.cn/thumbnail/68f976d7gw1e1iqfkmv6ij.jpg"
    2
    http://weibo.com/xiaopuwoxiaopu
    "“来年就交你啦!去保卫我泱泱中华大地吧!”——【新年好 >//////<,】(说好的年贺来了>v0(自娱自乐请别把图用于奇怪的地方拜托了OJZ||||"
    "http://ww4.sinaimg.cn/thumbnail/6af102betw1e1jmnbeuwvj.jpg"
    3
    http://weibo.com/cqcb
    "【歌手朱哲琴珠峰录制MV时遇暴雪,已失踪10小时】5日晚7点50分,朱哲琴经纪人依兰在腾讯微博中发出求救称,西藏西南部迎来大到暴雪,前往珠峰拍摄MV的歌手朱哲琴及随队工作人员全部失踪,截止记者发稿时间,已经将近10个小时完全失去联系,天气恶劣再加物资匮乏,目前情况十分危急。"
    "http://ww3.sinaimg.cn/thumbnail/54a5e40djw1e1ivq6xwd4j.jpg"
    4
    http://weibo.com/npss
    "来个微访谈吧,南派治愈问答。"
    5
    http://weibo.com/chway888
    "赖昌星万里迢迢走私汽油,价格低于原来的市场价(不到3元),养肥了那么多位高权重的贪吏,养育了自己家乡所有55岁以上的老人,就这样居然还赚了几百亿。反观现在的两桶油,劣质汽油卖这么贵,居然天天喊亏。星哥,我每次加油时都会怀念你, 怀念你那博大的情怀。盼你早日出来东山再起!尼玛,加油! "
    "http://ww1.sinaimg.cn/thumbnail/72a1dda8jw1e1iv6auf6qj.jpg"
    6
    http://weibo.com/xinhuashidian
    "【孩子,走哪儿我都举着你的照片】春节将近,詹本玉一家举着寻人启示坐在北京地铁上。这位来自四川的母亲说,11岁的大女儿周沁去年7月11日晚11时在北京石榴庄走失后,现在一家人走哪儿都举着寻人启示。孩子,你在哪儿?联系电话:13641120549、13683639846、18201577176。(记者朱立毅)"
    "http://ww1.sinaimg.cn/thumbnail/654b47dagw1e1jjqlqen8j.jpg"
    7
    http://weibo.com/ibukisatsuki
    "《八一八我那刚入阵营的小恶人花从一次美丽邂逅到死情缘的全过程》。"
    "http://ww3.sinaimg.cn/thumbnail/6aa3df83jw1e1iweehvg3j.jpg"
    8
    http://weibo.com/lastangel17th
    "对着春晚节目单(上半部分)画了点吐槽"
    "http://ww4.sinaimg.cn/thumbnail/69917555jw1e1jn49vfbqj.jpg"
    9
    http://weibo.com/choiseongho
    "你们猜这谁?"
    "http://ww4.sinaimg.cn/thumbnail/a8ef5277jw1e1jc0ht7d2j.jpg"
    "BK~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
    1
    
    
    作为一个山寨控,我经常把歌词乱改山寨化,今天洗完澡在房间换衣服。怒目凝视自己老二,突然情不自禁大吼而出…………啊啊啊啊啊啊给我一杯壮阳水,换我一夜不下垂!!!!!客厅坐的我姨妈我妈还有我姐。吼完之后我就我就没出卧室门!!!!!!
    
    2
    
    
    lz一直坚信自己是一位好妹纸。。每看一条就点一个笑脸。因为快过年了,给个笑脸希望糗友们高兴一点。。妹纸只能帮这么多了。。。
    
    3
    
    
    刚才开会 对面那位主任从名字上就把我完爆地体无完肤
    
    4
    
    
    半碗面,两个蛋,若干蛋糕。这么多人一起生日见过吗?没见过给个笑脸吧。
    
    5
    
    
    最近很火的一句话,靠这个破10了。
    
    6
    
    
    就在刚才,去文具店买信封,老板笑了笑说这年头买信封没有用来写信的了。懂的点个笑脸吧。
    
    7
    
    
    朋友开出租车,今天被投诉了,原因是有个人要打车从青岛去天津,说打表,朋友说,你把我打成表我都不去。

     其他:如果遍历一个table tr 里的td时又出现th 可以这样处理

      tr.children.map do |c|
       c.text
       puts c
      end

  • 相关阅读:
    Html2Text
    分析文件上传过程中的HTTP头部
    去除html标签
    .NET/C#中的索引器
    MSB与LSB
    大流量网站的底层系统架构
    经典SQL语句,可以让行的数据当列来显示
    在页面弹出漂亮的提示框右下角弹出,方正的框
    ASP.NET读取XML某节点返回DataTable实例
    读取EXECL文件内容,可以支持分布
  • 原文地址:https://www.cnblogs.com/dluf/p/2907723.html
Copyright © 2011-2022 走看看