Splash不工作但requests_html可以工作

这个简单的Splash Lua脚本不能正确地呈现这个网页。具体来说,HTML响应不完整也不正确。我想使用Splash,因为它可以很容易地与Scrapy集成。但是,我可以很容易地使用Python中的requests_html获得HTML。为什么Splash不能工作?请注意,Splash脚本将无法执行xpath表达式//h2[@class='_14i3z6h']/text(),因为在Splash呈现的HTML中不存在。

url = https://www.airbnb.ca/rooms/48058366

这很容易使用requests_html。

简单的Python脚本(有效,HTML是正确的,xpath表达式有效)

import requests_html
r = session.get(f"https://www.airbnb.ca/rooms/48058366")
r.html.render(sleep=3, timeout=3)
r.html.xpath("//h2[@class='_14i3z6h']/text()")

Lua脚本(HTML是错误的)

function main(splash, args)
  splash.private_mode_enabled = false
  assert(splash:go(args.url))
  assert(splash:wait(2))
  splash.private_mode_enabled = true
  return {
    html = splash:html(),
    png = splash:png(),
    har = splash:har(),
  }
end

原文链接 https://stackoverflow.com/questions/70948465

点赞