baidu 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
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