baidu 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/baidu.rb +23 -1
- metadata +2 -2
data/lib/baidu.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#coding:UTF-8
|
2
|
+
require 'rubygems'
|
2
3
|
require 'mechanize'
|
3
4
|
require 'json'
|
4
5
|
require 'uri'
|
@@ -24,6 +25,22 @@ class Baidu
|
|
24
25
|
return JSON.parse m[0]
|
25
26
|
end
|
26
27
|
|
28
|
+
def extend(words,level=3,sleeptime=1)
|
29
|
+
level = level.to_i - 1
|
30
|
+
words = [words] unless words.respond_to? 'each'
|
31
|
+
|
32
|
+
extensions = Array.new
|
33
|
+
words.each do |word|
|
34
|
+
self.query(word)
|
35
|
+
extensions += related_keywords
|
36
|
+
extensions += suggestions(word)
|
37
|
+
sleep sleeptime
|
38
|
+
end
|
39
|
+
extensions.uniq!
|
40
|
+
return extensions if level < 1
|
41
|
+
return extensions + extend(extensions,level)
|
42
|
+
end
|
43
|
+
|
27
44
|
def popular?(wd)
|
28
45
|
return @a.get("http://index.baidu.com/main/word.php?word=#{URI.encode(wd.encode("GBK"))}").body.include?"boxFlash"
|
29
46
|
end
|
@@ -37,7 +54,11 @@ class Baidu
|
|
37
54
|
q << "rn=#{@perpage}"
|
38
55
|
queryStr = q.join("&")
|
39
56
|
uri = URI.encode((BaseUri + queryStr).encode('GBK'))
|
40
|
-
|
57
|
+
begin
|
58
|
+
@page = @a.get uri
|
59
|
+
rescue Net::HTTP::Persistent::Error
|
60
|
+
warn "#{uri}timeout"
|
61
|
+
end
|
41
62
|
clean
|
42
63
|
@number = self.how_many
|
43
64
|
@maxpage = (@number / @perpage.to_f).round
|
@@ -118,6 +139,7 @@ class Baidu
|
|
118
139
|
div.each do |keyword|
|
119
140
|
keywords << keyword.text
|
120
141
|
end
|
142
|
+
@data[:realated_keywords] = keywords
|
121
143
|
return keywords
|
122
144
|
#m = /href="[^"]+">([^<]+)<\/a>/.match(related.content)
|
123
145
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: baidu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -39,7 +39,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
39
39
|
version: '0'
|
40
40
|
requirements: []
|
41
41
|
rubyforge_project:
|
42
|
-
rubygems_version: 1.8.
|
42
|
+
rubygems_version: 1.8.21
|
43
43
|
signing_key:
|
44
44
|
specification_version: 3
|
45
45
|
summary: to get keyword ranking,related queries and popularity from baidu.com. this
|