Module: HttpCrawler::Client

Included in:
Proxy::TestProxyApi::Client, Web::Baidu::Client
Defined in:
lib/http_crawler/client.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#httpObject (readonly)

Returns the value of attribute http.



24
25
26
# File 'lib/http_crawler/client.rb', line 24

def http
  @http
end

#uriObject (readonly)

Returns the value of attribute uri.



24
25
26
# File 'lib/http_crawler/client.rb', line 24

def uri
  @uri
end

Class Method Details

.for(web_name, *args) ⇒ Object

接收格式web_name = “biquge_duquanben” 返回 HttpCrawler::Web::BiqugeDuquanben::Client 实例



10
11
12
# File 'lib/http_crawler/client.rb', line 10

def for(web_name, *args)
  "HttpCrawler::Web::#{web_name.camelize}::Client".constantize.new(*args)
end

.for_module(module_name, *args) ⇒ Object

接收格式module_name = “HttpCrawler::Web::BiqugeDuquanben” 返回 HttpCrawler::Web::BiqugeDuquanben::Client 实例



19
20
21
# File 'lib/http_crawler/client.rb', line 19

def for_module(module_name, *args)
  "#{module_name}::Client".constantize.new(*args)
end

Instance Method Details

#auto_proxy=(value) ⇒ Object



72
73
74
75
76
# File 'lib/http_crawler/client.rb', line 72

def auto_proxy=(value)
  Rails.logger.debug "自动更新代理"
  @http.auto_proxy = value
  @http.update_proxy if (value == true && @http.proxy? == false)
end

#headerObject



56
57
58
# File 'lib/http_crawler/client.rb', line 56

def header
  @header ||= init_header
end

#init_headerObject



60
61
62
# File 'lib/http_crawler/client.rb', line 60

def init_header
  nil
end

#init_httpObject

初始化http参数



45
46
47
# File 'lib/http_crawler/client.rb', line 45

def init_http

end

#init_uriObject

init_uri 如果未初始化@uri,则会报错

继承类需要实现 @uri = URI("http://host")


52
53
54
# File 'lib/http_crawler/client.rb', line 52

def init_uri
  @uri = nil
end

#initializeObject

init_uri 如果未初始化@uri,则会报错

继承类需要重定义 init_uri


30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/http_crawler/client.rb', line 30

def initialize
  raise "Client uri为空" unless init_uri
  @http = HttpCrawler::HTTP.new(uri.host, uri.port)

  @http.use_ssl = (uri.scheme == "https")

  @http.open_timeout = 5
  @http.read_timeout = 5
  @http.proxy_key = "#{self.class}"
  init_http

  Rails.logger.debug "proxy_key => #{@http.proxy_key}"
end

#update_header(parameter = {}) ⇒ Object



64
65
66
# File 'lib/http_crawler/client.rb', line 64

def update_header(parameter = {})
  nil
end

#update_proxy(proxy = {}) ⇒ Object



68
69
70
# File 'lib/http_crawler/client.rb', line 68

def update_proxy(proxy = {})
  @http.update_proxy(proxy)
end

#validation_page?(*arg) ⇒ Boolean

是否验证码界面

Returns:

  • (Boolean)


79
80
81
# File 'lib/http_crawler/client.rb', line 79

def validation_page?(*arg)
  false
end