スプラッシュオブジェクトのプロパティ
引数
舞最初のパラメータ()メソッド:スプラッシュオブジェクト(その特性およびロード処理を制御するための方法)
引数: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