1

html.parser.analyzerHTMLの操作方法は次のとおりです。

( sc ) "google.com/search?q=vim" scrape-html

--- Data stack:
T{ response f "1.1" 200 "OK" H{ ~array~ ~array~ ~array~ ~array~...
V{ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~...
( sc ) nip "resultStats" find-by-id

--- Data stack:
258
T{ tag f "div" H{ ~array~ ~array~ } f f }
( sc )  dup .
T{ tag
    { name "div" }
    { attributes H{ { "class" "sd" } { "id" "resultStats" } } }
}

--- Data stack:
258
T{ tag f "div" H{ ~array~ ~array~ } f f }

では、そのオブジェクトのテキストを取得するにはどうすればよいでしょうか? のようなものになるはずですAbout 53,000,000 resultshtml.parser.analyzerテキストを公開していないようです...?

編集:うーん:

<div id="resultStats">About 310,000,000 results<nobr> (0.43 seconds)&nbsp;</nobr></div>

ではなくpdivです。問題は、div のテキストを取得するにはどうすればよいかということです。

--- Data stack:
T{ tag f "div" H{ ~array~ ~array~ } f f }
( sc ) dup text>>

--- Data stack:
T{ tag f "div" H{ ~array~ ~array~ } f f }
f

それほど単純ではありません。:(

4

1 に答える 1

1

を使用するfind-by-id-betweenと、タグ自体だけでなく内部のすべてが得られます (つまり、: のように見えます)。

テキストは結果内にあるため、次のようになります。

( sc ) "google.com/search?q=vim" scrape-html

--- Data stack:
T{ response f "1.1" 200 "OK" H{ ~array~ ~array~ ~array~ ~array~...
V{ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~ ~tag~...
( sc ) nip "resultStats" find-by-id-between

--- Data stack:
T{ ~tag~ ~tag~ ~tag~ }
( sc )  dup .
V{
    T{ tag
        { name "div" }
        { attributes
            H{ { "class" "sd" } { "id" "resultStats" } }
        }
    }
    T{ tag
    { name text }
        { text "Cerca de 41.500.000 resultados" }
    }
    T{ tag { name "div" } { attributes H{ } } { closing? t } }
}

--- Data stack:
T{ ~tag~ ~tag~ ~tag~ }
( sc ) second text>>

--- Data stack:
"Cerca de 41.500.000 resultados"

せんさく好きなグーグルが私が誰であるかを見つけたので、それはスペイン語です!

于 2016-04-03T01:23:15.970 に答える