スプラッシュオブジェクトのプロパティとメソッド

スプラッシュオブジェクトのプロパティ

引数

舞最初のパラメータ()メソッド:スプラッシュオブジェクト(その特性およびロード処理を制御するための方法)
引数:URLなどのアクセスパラメータは、GET要求のロード時間を:要求が使用可能なパラメータ、POST要求であるGET:フォームの提出を取得データ

function main(splash, args)
    local url = args.url
  return url
end

そして、次のと等価です

function main(splash)
    local url = splash.args.url
  return url
end

js_enabled

JavaScriptの実行スイッチは、デフォルトではtrueです

JSを無効にします。

function main (splash,args)
  splash:go("http://www.baidu.com")
  splash.js_enabled = false
  local title = splash:evaljs("document.title")
  return {title=title}
end

resource_timeout

設定されたタイムアウト負荷(S)、0 /ゼロ全く検出タイムアウトがないことを示し

image_enabled

イメージがロードされているかどうかを設定し、ロードされたデフォルト真、JavaScriptは(DOMノードの位置に影響を与える)レンダリング、スプラッシュキャッシュは画像のロードを開始するために使用され、画像はまだ無効の後ろになります無効に影響します、あなたはスプラッシュを再起動することができます

plugins_enabled

ブラウザのプラグインは、デフォルトはfalseでオンになっています

scroll_position

制御ページの上下/左右スクロール(X = 100(左右スクロール)、Y = 100(スクロール))

400個のピクセルをスクロールします。

function main (splash,args)
  assert(splash:go("http://www.taobao.com"))
  splash.scroll_position = {y = 400}
  return {ping = splash:png()}
end

スプラッシュオブジェクトのメソッド

行きます()

リンクをリクエストし、あなたは着信要求、フォームやその他のデータを率いることができます

ok,reason = splash:go{url, baseurl=nil, headers=nil, http_method="GET", body=nil , formdata=nil}

URL:URL要求

BASEURL:オプションのパラメータは、デフォルトでは、ヌル相対パスのリソースを示す、および負荷であります

ヘッダー:オプションのパラメータは、デフォルトでは要求ヘッダーことを示す、空であります

http_method:オプションのパラメータ、デフォルトはGETします

本体:オプションのパラメータは、デフォルトでは、フォームデータのPOSTは、アプリケーション/ JSONのコンテンツタイプを使用する場合、空であります

FORMDATA:コンテンツタイプを使用するときにオプションのパラメータは、デフォルトでは、アプリケーション/ x-www-form-urlencodedでフォームデータのPOST空であります

待つ()

コントロールページの待ち時間

ok, reason = splash:wait{time, cancel_on_redirect=false, cancel_on_error=true}

時間:待ち時間

cancel_on_error:オプションのパラメータ、デフォルトはfalse、待って停止し、読み込みエラーが発生したことを示しています

cancel_on_redirect:オプションのパラメータ、デフォルトはfalse、リダイレクトが待って停止するように発生し、リダイレクトの結果を返すことを示しています

evaljs()

JavaScriptコードを実行した後、最後のJavaScriptステートメントリターンの結果を返します。

result = splash:evaljs(js)

Runji()

evaljsによって定義されたJavaScriptの宣言文ブロック()の呼び出し

function main(splash, args)
  splash:go(args.url)
  splash:runjs("foo = function(){return 'hello'}")
  local result = splash:evaljs("foo()")
  return result
end

自動ロード()

アクセスしたときに、各ページオブジェクトの設定が自動的にロードされ、それは)(evaljsを呼び出し、JavaScriptコードやライブラリ、ない行動することができ

ok,reason = splash:autoload{source_or_url}

source_or_url:jsのコードやJSライブラリリンク

ソース:JSコード

URL:JSライブラリリンク

あとで電話します()

そして、ショットが再び取得したときに得られるテーマは、最後の3秒後、1秒、1.2秒の中間待機中に0.2秒を提供し、すべてのショットを返す前に3秒待って、外出先のアクセスウェイト(3.0)で使用されるように、実行タスクを遅らせるようにタイマーを設定すべてのスクリーンショットを返します

function main(splash, args)
  local snapshots = {}
  local timer = splash:call_later(function()
    snapshots["a"]=splash:png()
    splash:wait(1)
    snapshots["b"]=splash:png()
  end,0.2)
  splash:go("https://www.taobao.com")
  splash:wait(3.0)
  return snapshots
end

HTTP_GET()

httpリクエストを送信シミュレートします

response = splash:http_get(url,headers=nil,follow_redirects=true)
function main(splash, args)
  local treat = require("treat")
  local response = splash:http_get(args.url)
  return {
    html = treat.as_string(response.body),
    url = response.url,
    status = response.status
  }
end

URL:URL要求

ヘッダー:オプションのパラメータは、デフォルトが空である、リクエストヘッダ

follow_redirects:オプションの自動リダイレクトを開始するかどうかを示すパラメータで、デフォルト真

HTTP_POST()

送信後のリクエストボディのパラメータが必要です

response = splash:http_post{url, headers =「1il, follow_redirects=true, body=nil}

URL:URL要求

ヘッダー:オプションのパラメータは、デフォルトが空である、リクエストヘッダ

follow_redirects:オプションの自動リダイレクトを開始するかどうかを示すパラメータで、デフォルト真

ボディ:オプションのパラメータ、フォームパラメータ、デフォルトは空です

function main(splash, args)
  local treat = require("treat")
  local json = require("json")
  local response = splash:http_post{args.url,
    body=json.encode({name="aha"}),
    headers={["content-type"]="application/json"}
  }
  return {
    html = treat.as_string(response.body),
    url = response.url,
    status = response.status
  }
end

set_content()

設定ページの内容

function main(splash) 
    assert(splash:set_content("<html><body><hl>hello</hl></body></html>")) 
    return splash: png ()
end 

htmlの()

戻る取得したソース情報へ

function main(splash, args) 
splash:go("https://httpbin.org/get") 
return splash: html() 
end

PNG()

PNG形式にスクリーンショット復帰

png = splash:png()
function main(splash, args) 
splash:go("https:/taobao.com") 
return splash: png() 
end

JPEG()

JPEG形式のリターンのスクリーンショット

jpeg = splash:jpeg()
function main(splash, args) 
    splash:go("https:/taobao.com") 
    return splash: jpeg() 
end

()であります

ページのロードプロセスの記述を取得します。

function main(splash, args) 
    splash:go("https:/taobao.com") 
    return splash: har() 
end

URL()

現在のURLを取得します。

function main(splash, args) 
    splash:go("https:/taobao.com") 
    return splash: url() 
 end

GET_COOKIES()

クッキー現在のアクセスリンクを取得します。

function main(splash, args) 
    splash:go("https:/taobao.com") 
    return splash: get_cookies() 
 end

ADD_COOKIES()

クッキーを追加

cookies = splash:add_cookie{name, value, path=nil, domain=nil, expires=nil, httpOnly=nil, secure=nil}
function main(splash) 
  splash:add_cookie{"sessionid","23746Sghgfsd ","/", domain="http://example.com"}
  splash:go("http://example.com/") 
  return splash:html()
end

クッキーを消す()

Cookieをクリア

function main(splash, args) 
    splash:go("https:/taobao.com") 
  splash:clear_cookies()
    return splash: get_cookies() 
 end

get_viewport_size()

現在のブラウザのサイズを取得します。

function main(splash, args) 
    splash:go("https:/taobao.com") 
    return splash:get_viewport_size()
 end

set_viewport_size()

現在のブラウザのサイズを設定します。

function main(splash, args) 
  splash:set_viewport_size(1200,800)
  assert(splash:go("https:/taobao.com"))
  return splash:png()
 end

set_viewport_full()

全画面表示にブラウザを設定します

function main(splash, args) 
    splash:set_viewport_full()
  assert(splash:go("https:/taobao.com"))
  return splash:png()
 end

set_user_agent()

お使いのブラウザのuser_agentの設定

function main(splash, args) 
    splash:set_user_agent('Splash')
  assert(splash:go("http://httpbin.org/get"))
  return splash:html()
 end

set_custom_headers()

設定要求のヘッダー情報

function main(splash, args) 
    splash:set_custom_headers({
      ["User-Agent"] = "Splash",
      ["Sitle"] = "Splash",
    })
  assert(splash:go("http://httpbin.org/get"))
  return splash:html()
 end

選択し()

パラメータは、CSSセレクタであり、修飾された選択された第1ノード戻ります

function main(splash, args) 
    splash:go("https://www.baidu.com/")
  input = splash:select("#kw")
  input:send_text("Splash")
  splash:wait(3)
  return splash:png()
 end

すべて選択()

CSSセレクタは選択されたノードは、全てのパラメータの条件を満たして返します

function main(splash) 
    local treat = require('treat')
  assert(splash:go("http://quotes.toscrape.com"))
  assert(splash:wait(0.5))
  local texts = splash:select_all('.quote .text')
  local results = {}
  for index,text in ipairs(texts) do
    results[index] = text.node.innerHTML
    end
  return treat.as_array(results)
end

mouse_click()

シミュレートされたマウスクリックイベント

function main(splash) 
    splash:go("https://www.baidu.com")
  input = splash:select("#kw")
  input:send_text('Splash')
  submit = splash:select('#su')
  submit:mouse_click()
  splash:wait(3)
  return splash:png()
end

おすすめ

転載: www.cnblogs.com/einsam/p/11416072.html