繁体   English   中英

当javascript加载html的一部分时,http如何请求获取整个源页面?

[英]How to do http request to get the whole source page when part of html loaded by javascript?

我等待从https://www.collinsdictionary.com/dictionary/english/supremacy获取 html web 页面,但部分 html 文件由javascript加载。 当我使用HTTP.jl获取带有HTTP.request()的 web 页面时,我只获取在运行 javascript 之前加载的javascript文件的一部分,因此 web 页面 I85550868988 页面 I868988 与 Chrome5658 不同. 如何获取和Chrome一样的web页面? 我必须将WebDriver.jlSelenium WebDriverpython 绑定一起使用吗?

我的来源的一部分:

function get_page(w::word)::Bool
    response = nothing
    try
        response = HTTP.request("GET", "https://www.collinsdictionary.com/dictionary/$(dictionary)/$(w.org_word)",
                                                 connect_timeout=connect_timeout, readtimeout=readtimeout, retries=retries, redirect=true,proxy=proxy)
    catch e
        push!(w.err_log, [get_page_http_err, string(e)])
        return falses
    end
    open("./assets/org_page.html", "w") do f 
        write(f, String(response.body))
    end
    return true
end

dictionaryw.org_word都是String , function 在一个module中。

仅用HTTP.jl是不可能实现您想要的。 运行页面的 Javascript 部分根本不同——您需要一个 Javascript 引擎来执行此操作,这并不简单。

这不是 Julia 的 HTTP 的独特弱点: Python requests.get(url) 返回 javascript 代码而不是页面 html

(最近python中的标准库request好像增加了Javascript渲染能力)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM