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.
Files changed (2) hide show
  1. data/lib/baidu.rb +23 -1
  2. metadata +2 -2
@@ -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
- @page = @a.get uri
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.5
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.17
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