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 Selenium Web驱动程序是用于自动化Web浏览器操作的强大工具,它允许开发者使用Ruby语言编写脚本来控制浏览器的行为。这个工具主要用于Web应用的测试,但也可以用于其他需要浏览器交互的场景。在Ruby中,...
Ruby是一种高级编程语言,主要用于Web开发和脚本编写。Ruby的资源主要分为官方文档、社区驱动的资源、学习资源和工具等。 官方文档 Ruby Documentation:Ruby官方文档,涵盖了语言的所有方面,包括语言特性、标准...
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...
Ruby Rubyzip是用于读取和写入zip文件的ruby库。 重要的提示 Rubyzip界面已更改!!! 无需删除类名中的require "zip/zip"和Zip前缀。 如果任何需要旧版rubyzip的第三方gem出现问题,则可以使用以下解决方法: ...
《Ruby Programming:向Ruby之父学程序设计(第2版)》是为了让完全没有程序设计经验的读者也能灵活地使用Ruby,因此书中详细地说明了各种知识。从程序所需要的变量、常数、方法、类、控制结构等语法的说明,到类的主要...
Ruby-QRcode库是Ruby编程语言中用于生成和解析QR码的一个强大工具。QR码,全称为Quick Response Code(快速响应码),是一种二维条形码,可以存储各种数据,如文本、URL、联系人信息、日历事件等,并且在手机扫描...
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 API:轻松查找Ruby文档 Ruby API使搜索或浏览Ruby语言API文档变得轻松快捷。 为什么? 现有的Ruby文档网站很难搜索,也无法在移动设备上阅读。 Ruby API提供了受启发的即时搜索结果,以及易于在任何大小的...
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 安装...
response = post('/users', body: attributes.to_json, headers: { 'Content-Type' => 'application/json' }) response.parsed_response end ``` 除了基本的HTTP方法,httparty还提供了其他高级功能,如自定义...
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目录p6df-Ruby徽章概括贡献行为守则变化用法p6df-ruby:p6df-ruby / init.zsh: p6_ruby_prompt_info() p6df :: modules :: ruby :: deps() p6df :: modules :: ruby :: home :: symlink() ...
用ruby写的网页抓取脚本,可用于在线文档下载以及整站下载。
《Ruby编程,实用程序员指南》是一本针对Ruby语言的学习教程与参考手册,旨在为程序员提供一个全面、深入的Ruby语言学习资源。本书不仅适合初学者快速入门,也适合具有一定经验的开发者进阶学习。 ### 一、Ruby语言...
完整课程: : 项目配置创建配置文件: cp config/rubyflow.yml.example config/rubyflow.yml创建新的Github应用程序,并用您应用程序的CLIENT_ID和CLIENT_SECRET替换占位符,以便能够通过Github帐户登录。...
**Ruby课程:Ruby入门** Ruby是一种面向对象的、动态类型的编程语言,以其简洁优雅的语法和强大的元编程能力而闻名。在这个"Ruby课程:Ruby入门"中,我们将深入探讨Ruby中的一个基本控制结构——If / Else语句。...
在这个“Simple-Ruby-application”项目中,我们将深入探讨如何利用RoR创建一个基本的CRUD(创建、读取、更新、删除)Web应用程序。 【描述】:Ruby on Rails简化了Web应用开发的过程,它提供了丰富的库和工具,...