baidu 1.0.5 → 1.0.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 +8 -35
  2. metadata +1 -1
@@ -106,47 +106,20 @@ class BaiduResult
106
106
  end
107
107
 
108
108
  def ranks(host=nil)
109
- return @ranks unless @ranks.nil?
110
- @ranks = Hash.new
111
- @page.search("//table[@class=\"result\"]").each do |table|
112
- id = table['id']
113
- @ranks[id] = Hash.new
114
- url = @page.search("//table[@id=\"#{table['id']}\"]//span[@class=\"g\"]").first
115
- a = @page.search("//table[@id=\"#{table['id']}\"]//h3/a")
116
- @ranks[id]['text'] = a.text
117
- @ranks[id]['href'] = a.first['href'].sub('http://www.baidu.com/link?url=','').strip
118
- unless url.nil?
119
- url = url.text.strip
120
- @ranks[id]['host'] = URI(URI.encode("http://#{url}")).host
121
- else
122
- @ranks[id]['host'] = nil
123
- end
124
- end
125
- #@page.search("//table[@class=\"result\"]").map{|table|@page.search("//table[@id=\"#{table['id']}\"]//span[@class=\"g\"]").first}.map{|rank|URI(URI.encode('http://'+rank.text.strip)).host unless rank.nil?}
109
+ @ranks ||= @page.search("//table[@class=\"result\"]").map{|table|@page.search("//table[@id=\"#{table['id']}\"]//span[@class=\"g\"]").first}.map{|rank|URI(URI.encode('http://'+rank.text.strip.split(/\s/).first)).host unless rank.nil?}
126
110
  if host.nil?
127
111
  @ranks
128
112
  else
129
- host_ranks = Hash.new
130
- @ranks.each do |id,line|
131
- if host.class == Regexp
132
- host_ranks[id] = line if line['host'] =~ host
133
- elsif host.class == String
134
- host_ranks[id] = line if line['host'] == host
135
- end
136
- end
137
- host_ranks
138
- #'not finished'#@ranks.each_with_index.map{|h,i| i if !h.nil? and h==host}.compact
113
+ @ranks.each_with_index.map{|h,i| i if !h.nil? and h==host}.compact
139
114
  end
140
115
  end
141
116
 
142
- #return the top rank number from @ranks with the input host
117
+ #look up a word and get the rank of a uri with $host
143
118
  def rank(host)#on base of ranks
144
- ranks.each do |id,line|
145
- if host.class == Regexp
146
- return id if line['host'] =~ host
147
- elsif host.class == String
148
- return id if line['host'] == host
149
- end
119
+ ranks.each_with_index do |uri,index|
120
+ next if uri.nil?
121
+ return index+1 if uri.split('/')[0].strip == host
122
+ #return index+1 if URI.parse(URI.encode(uri)).host == host
150
123
  end
151
124
  return nil
152
125
  end
@@ -162,4 +135,4 @@ class BaiduResult
162
135
  def next
163
136
  @page = BaiduResult.new(Mechanize.new.click(@page.link_with(:text=>/下一页/))) unless @page.link_with(:text=>/下一页/).nil?
164
137
  end
165
- end
138
+ 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: 1.0.5
4
+ version: 1.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: