爬虫之Splash对象方法(五)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/86765342

一 set_user_agent()

1 点睛

设置浏览器的User-Agent

2 代码

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

3 效果

二 set_custom_headers()

1 点睛

设置请求头

2 代码

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

3 效果

扫描二维码关注公众号,回复: 5150315 查看本文章

三 select()

1 点睛

该方法可以选中符合条件的第一个节点,如果有多个节点符合条件,则只会返回一个,其参数是CSS选择器。

2 代码

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

3 效果

4 说明

这里我们首先访问了百度,然后选中了搜索框,随后调用了send_text()方法填写了文本,然后返回网页截图。

三 select_all()

1 点睛

选择所有符合条件的节点,其参数是CSS选择器。

2 代码

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

3 效果

四 mouse_click()

1 点睛

模拟鼠标点击操作,传入的参数为坐标值x和y。此外,也可以直接选中某个节点,然后调用此方法。

2 代码

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

3 效果

4 说明

首先选中页面的输入框,输入了文本,然后选中“提交”按钮,调用了mouse_click()方法提交查询,然后页面等待三秒,返回截图。

前面介绍了Splash的常用API操作,还有一些API在这不再一一介绍,更加详细和权威的说明可以参见官方文档https://splash.readthedocs.io/en/stable/scripting-ref.html,此页面介绍了Splash对象的所有API操作。另外,还有针对页面元素的API操作,链接为https://splash.readthedocs.io/en/stable/scripting-element-object.html

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/86765342