Python爬虫编程思想(106):基于Splash的爬虫--异步处理与go函数
Posted 蒙娜丽宁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python爬虫编程思想(106):基于Splash的爬虫--异步处理与go函数相关的知识,希望对你有一定的参考价值。
Splash支持异步处理,例如,go函数就是通过异步方式访问页面的,不过go函数并不能指定异步回调函数,所以在调用go函数后,需要使用wait函数等待一会,这样可以给页面装载留有一定的时间。
下面的例子通过对于lua数组进行迭代,得到数组中的URL,并组合成完整的URL,然后通过go函数访问这些URL,并得到每一个URL对应页面的截图。
function main(splash,args)
-- 定义一个Lua数组,数组元素是URL的一部分
local urls = "www.baidu.com","www.jd.com","www.microsoft.com"
-- 定义保存截图的字典变量
local results =
-- 对URL数组进行迭代
for index, url in ipairs(urls) do
-- 访问对应的URL,如果ok为nil,所以有错误,reason是错误原因
local ok,reason = splash:go("https://"..url)
if ok then
-- 等待1秒
splash:wait(1)
-- 得到当前页面的截图
results[url] = splash:png(
以上是关于Python爬虫编程思想(106):基于Splash的爬虫--异步处理与go函数的主要内容,如果未能解决你的问题,请参考以下文章
Python爬虫编程思想(104):Splash基础(支持Lua的轻量级浏览器)
Python爬虫编程思想(107):基于Splash的爬虫--对象属性
Python爬虫编程思想(108):基于Splash的爬虫--go函数与wait函数
Python爬虫编程思想(110):基于Splash的爬虫--更多的Lua函数