class Query::Engine::Baidu

Constants

BaseUri
Host
Options

Public Class Methods

pages(host) click to toggle source
# File lib/query/engine/baidu.rb, line 88
def self.pages(host)
  self.query("site:#{host}")
end
pages_with(host,string) click to toggle source

site:xxx.yyy.com inurl:zzz

# File lib/query/engine/baidu.rb, line 98
def self.pages_with(host,string)
  self.query("site:#{host} inurl:#{string}")
end
query(wd,params={}) click to toggle source
# File lib/query/engine/baidu.rb, line 46
      def self.query(wd,params={})
        q = Array.new
        q << "wd=#{URI.encode(wd)}"
        q << "rn=#{@perpage.to_i}" if @perpage
        params.each do |k,v|
          q << "#{k.to_s}=#{v.to_s}"
        end
        queryStr = q.join("&")
        #uri = URI.encode((BaseUri + queryStr).encode('GBK'))
        # uri = URI.encode((BaseUri + queryStr))
        uri = URI::HTTP.build(:host=>Host,:path=>'/s',:query=>q.join('&'))
        # begin
        # @page = @a.get uri
        p uri
        p Options
        @page = HTTParty.get(uri,Options)
        r = Query::Result::Baidu.new(@page)
        r.baseuri = uri
        r.pagenumber = 1
        r.perpage = @perpage
        r
        # rescue Exception => e
        #     warn e.to_s
        #     return false
        # end
=begin
                query = "#{query}"
                @uri = BaseUri+URI.encode(query.encode('GBK'))
                @page = @a.get @uri
                self.clean
                @number = self.how_many
                @maxpage = (@number / @perpage.to_f).round
                @maxpage =10 if @maxpage>10
                @currpage =0
=end
      end
query_within(host,query) click to toggle source

site:xxx.yyy.com

# File lib/query/engine/baidu.rb, line 84
def self.query_within(host,query)
  self.query("#{query} site:#{host}")
end
suggestions(query,options = []) click to toggle source
# File lib/query/engine/baidu.rb, line 11
def self.suggestions(query,options = [])
  require 'json'
  query = URI.encode(query)
  suggestions = HTTParty.get("https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=#{query}&json=1&p=3&sid=&req=2&csor=0&cb=jQuery1102036467162938788533_1437556180622&_=#{(Time.now.to_f*1000).to_i}",options)
  suggestions.force_encoding('GB18030').encode('UTF-8').delete('jQuery1102036467162938788533_1437556180622(').delete(')').scan(/"q": "([^"]+)"/).flatten.uniq
end