【问题标题】:Lua socket: why doesn't socket.http.request download entire html code of a page?Lua socket:为什么socket.http.request不下载页面的整个html代码?
【发布时间】:2012-09-23 17:03:59
【问题描述】:

我想将this web page 的整个html 代码下载到Lua 字符串中。问题是当我使用 Inspect Elements 命令(右键单击网页,最后一个选项)时,保存的代码会跳过 Google Chrome 上可见的一些行。

我需要这些行,因为我想使用那里写的信息,准确地说是我想了解卡的价格。

使用的代码很简单:

-- loads the HTTP module and any libraries it requires
local http  = require("socket.http")

-- Lua socket --
b, c, h = http.request("http://magiccards.info/roe/en/4.html")
print(b)

我该如何解决?

【问题讨论】:

    标签: http lua


    【解决方案1】:

    页面上的某些元素可能是在主文档加载后创建的,通过 Javascript DOM 操作或填补缺失部分的 AJAX 查询。您可以查看这些脚本是否确实已下载,然后使用 V8 等嵌入式引擎在本地运行它们。

    【讨论】:

    • 嗯,它肯定会复杂得多。也许 Node.js 有一些插件。
    • 很遗憾,我不是这个主题的专家。但是,如果您只想获得这个站点,您可以“手动”识别所有缺失的元素,然后硬编码相应的请求以获取缺失的部分,我猜。
    • 嗯...我有一张卡片列表(以及网站等),我必须这样做!
    • 为什么不直接链接到价格网站magic.tcgplayer.com/db/…
    • 首先,稍微解释一下:每张万智牌都有一个数字,例如 134/158。这意味着它是由 158 张牌组成的特定系列的第 134 张牌。 magiccards.info 网站,卡片网站的字符串结构非常好,因为它是这样形成的:www.magiccards.info///.html 现在,在我的 PC 上,我有一个文件,其中包含所有这些引用的表格,因此想法是在 Lua 中加载它并使用它来编写网站字符串,搜索价格并将它们保存在另一个表格中。在magic.tcgplayer.com上,我做不到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多