0

LibCurl を使用してログインしようとしていました。実際、私はLuaでlibCurlのバインディングであるLuaCurlを使用しています。この Web ページを参照しています: http://www.hackthissite.org/articles/read/1078

私はこれを試しました:

> require("libcurl")
> c=curl.new()
> c:setopt(curl.OPT_USERAGENT,"Mozilla/4.0")
> c:setopt(curl.OPT_AUTOREFERER,true)
> c:setopt(curl.OPT_FOLLOWLOCATION,true)
> c:setopt(curl.OPT_COOKIEFILE,"")
> c:setopt(curl.OPT_URL,"https://www.chase.com")
> res=c:perform()

しかし、この最後の操作の後、プログラムは何かを待っているかのように動かなくなります。ここで何が間違っていますか?

ありがとう

4

1 に答える 1

0

私はあなたのプログラムを試してみましたが、うまくいくようです。私が得るのは、指定されたサイトのコンテンツですstdout。ネットワークの問題が発生しているようです...

出力全体を文字列としてキャプチャし、後で処理する場合は、OPT_WRITEFUNCTION保存できるより多くのデータで呼び出されるコールバックを使用して提供する必要があります。GETこれは、単純な Web マイニング ツールボックスWDMでメソッドを実装する方法の簡略化されたバージョンです。

local c = curl.new()
... 
function get(url)
    c:setopt(curl.OPT_URL,url)
    local t = {} -- output will be stored here
    c:setopt(curl.OPT_WRITEFUNCTION, function (a, b)
        local s
        -- luacurl and Lua-cURL friendly way
        if type(a) == "string" then s = a else s = b end
        table.insert(t, s) -- store this piece of data
        return #s
    end)
    assert(c:perform())
    return table.concat(t) -- return the whole content
end
于 2013-02-07T21:28:16.137 に答える