baidu 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|