`
uglyduck^swam
  • 浏览: 6563 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

ruby application:抓取QQ城市达人

阅读更多
require 'uri' 
require 'thread' 
require 'net/http' 
 
urls=[]  
1.upto(100){|i|  
  urls<<"http://city.qzone.qq.com/json.php?mod=sososearch&act=page&type=city&jsontype=str&callback=searchProCb&cd=440300&pg=#{i}" 
}  
threads=[]  
pattern=/"MD":"(\d+)".+?"TI":"(.+?)"/  
mutex=Mutex.new 
results=[]  
 
urls.each{|url|  
    threads << Thread.new{  
        data=Net::HTTP.get(URI.parse(url))  
            mutex.synchronize{  
                data.scan(pattern){|m|  
                    results<<"Name:#{m[1]}\tQQ:#{m[0]}\n" 
                }  
            }  
    }  
}  
 
threads.each{|t|t.join}  
 
File.open('QQ.log','w'){|f|  
    results.each{|r|  
        f<<r  
    }  


require 'uri'
require 'thread'
require 'net/http'

urls=[]
1.upto(100){|i|
  urls<<"http://city.qzone.qq.com/json.php?mod=sososearch&act=page&type=city&jsontype=str&callback=searchProCb&cd=440300&pg=#{i}"
}
threads=[]
pattern=/"MD":"(\d+)".+?"TI":"(.+?)"/
mutex=Mutex.new
results=[]

urls.each{|url|
    threads << Thread.new{
        data=Net::HTTP.get(URI.parse(url))
            mutex.synchronize{
                data.scan(pattern){|m|
                    results<<"Name:#{m[1]}\tQQ:#{m[0]}\n"
                }
            }
    }
}

threads.each{|t|t.join}

File.open('QQ.log','w'){|f|
    results.each{|r|
        f<<r
    }
}

执行之后,会在相应目录下产生一个名为QQ.log的日志文件,里面便是我们的QQ城市达人列表了。
分享到:
评论

相关推荐

    ruby程序:ruby selenium Web驱动程序

    Ruby Selenium Web驱动程序是用于自动化Web浏览器操作的强大工具,它允许开发者使用Ruby语言编写脚本来控制浏览器的行为。这个工具主要用于Web应用的测试,但也可以用于其他需要浏览器交互的场景。在Ruby中,...

    Ruby是一种高级编程语言,主要用于Web开发和脚本编写 Ruby的资源主要分为官方文档、社区驱动的资源、学习资源和工具等

    Ruby是一种高级编程语言,主要用于Web开发和脚本编写。Ruby的资源主要分为官方文档、社区驱动的资源、学习资源和工具等。 官方文档 Ruby Documentation:Ruby官方文档,涵盖了语言的所有方面,包括语言特性、标准...

    Beginning.Ruby.From.Novice.to.Professional.3rd.Edition.1484212797

    Learn the principles behind object-oriented programming and within a few chapters create a fully functional Ruby application. You'll also gain a basic understanding of many ancillary technologies such...

    rubyzip:官方Rubyzip存储库

    Ruby Rubyzip是用于读取和写入zip文件的ruby库。 重要的提示 Rubyzip界面已更改!!! 无需删除类名中的require "zip/zip"和Zip前缀。 如果任何需要旧版rubyzip的第三方gem出现问题,则可以使用以下解决方法: ...

    Ruby.Programming_向Ruby之父学程序设计(第2版)

    《Ruby Programming:向Ruby之父学程序设计(第2版)》是为了让完全没有程序设计经验的读者也能灵活地使用Ruby,因此书中详细地说明了各种知识。从程序所需要的变量、常数、方法、类、控制结构等语法的说明,到类的主要...

    Ruby-QRcode一个用于解析QR码的Ruby库

    Ruby-QRcode库是Ruby编程语言中用于生成和解析QR码的一个强大工具。QR码,全称为Quick Response Code(快速响应码),是一种二维条形码,可以存储各种数据,如文本、URL、联系人信息、日历事件等,并且在手机扫描...

    rust-vs-ruby:“Rust 与 Ruby”的示例应用程序

    Rust 与 Ruby:构建 API 这是 Rust 与 Ruby:构建 API 博客文章的存储库。 如何运行示例 git clone https://github.com/Sdogruyol/rust-vs-ruby Ruby Ruby版本:2.2.1 Ruby 服务器:瘦 1.6.3 框架:古巴 3.4.0 ...

    Ruby:ruby错误处理教程

    Ruby:ruby错误处理教程

    rubyapi:Ruby API使搜索或浏览Ruby语言API文档变得轻松快捷。

    Ruby API:轻松查找Ruby文档 Ruby API使搜索或浏览Ruby语言API文档变得轻松快捷。 为什么? 现有的Ruby文档网站很难搜索,也无法在移动设备上阅读。 Ruby API提供了受启发的即时搜索结果,以及易于在任何大小的...

    ruby rails demo

    ruby rails demo, rails 简单demo。 (1)到ruby官网:http://www.ruby-lang.org/en/下载window安装包,并安装, ruby版本: ruby -v (2)安装Rails3 gem install rails (3)安装sqlite3 gem install sqlite3-ruby 安装...

    Ruby-httparty让http有趣

    response = post('/users', body: attributes.to_json, headers: { 'Content-Type' =&gt; 'application/json' }) response.parsed_response end ``` 除了基本的HTTP方法,httparty还提供了其他高级功能,如自定义...

    ruby-enum:在Ruby中定义枚举的便捷方法

    class OrderState include Ruby :: Enum define :CREATED , 'created' define :PAID , 'paid'end OrderState :: CREATED # 'created'OrderState :: PAID # 'paid'OrderState :: UNKNOWN # raises Ruby::Enum::...

    p6df-ruby:Ruby

    p6df-Ruby目录p6df-Ruby徽章概括贡献行为守则变化用法p6df-ruby:p6df-ruby / init.zsh: p6_ruby_prompt_info() p6df :: modules :: ruby​​ :: deps() p6df :: modules :: ruby​​ :: home :: symlink() ...

    网页抓取脚本(by ruby)

    用ruby写的网页抓取脚本,可用于在线文档下载以及整站下载。

    Ruby编程,实用程序员指南Programming Ruby, The Pragmatic Programmer's Guide

    《Ruby编程,实用程序员指南》是一本针对Ruby语言的学习教程与参考手册,旨在为程序员提供一个全面、深入的Ruby语言学习资源。本书不仅适合初学者快速入门,也适合具有一定经验的开发者进阶学习。 ### 一、Ruby语言...

    rubyflow:Rubyflow.com克隆

    完整课程: : 项目配置创建配置文件: cp config/rubyflow.yml.example config/rubyflow.yml创建新的Github应用程序,并用您应用程序的CLIENT_ID和CLIENT_SECRET替换占位符,以便能够通过Github帐户登录。...

    Ruby课程:Ruby入门

    **Ruby课程:Ruby入门** Ruby是一种面向对象的、动态类型的编程语言,以其简洁优雅的语法和强大的元编程能力而闻名。在这个"Ruby课程:Ruby入门"中,我们将深入探讨Ruby中的一个基本控制结构——If / Else语句。...

    Simple-Ruby-application:使用Ruby on Rails的简单CRUD Web应用程序

    在这个“Simple-Ruby-application”项目中,我们将深入探讨如何利用RoR创建一个基本的CRUD(创建、读取、更新、删除)Web应用程序。 【描述】:Ruby on Rails简化了Web应用开发的过程,它提供了丰富的库和工具,...

Global site tag (gtag.js) - Google Analytics