2016-04-02 30 views
1

html.parser.analyzer ist wie mit HTML zu arbeiten, wie es scheint:Wie bekomme ich den Text eines Divs?

(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 } 

Nun, wie komme ich an, dass der Text des Objekts? Es sollte etwas wie About 53,000,000 results sein. html.parser.analyzer scheint den Text nicht zu entlarven ...?

Edit: Oooh:

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

Es ist kein p, es ist ein div. Also die Frage ist wirklich, wie komme ich an einen div's Text?

--- 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 

Nicht so einfach. :(

+0

Faktor-lang - siehe die Etiketten –

+0

@BassemAkl Dies ist etwa [Faktor] (http://factorcode.org), ist es in den Tags – cat

Antwort

1

Wenn Sie find-by-id-between verwenden, das Sie alles innerhalb als auch den Tag selbst (oder so sieht es aus wie :)

Der Text in dem Ergebnis sein wird, so:.

(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" 

es in spanisch ist, weil nosey google herausgefunden, wer ich bin

+1

Oh * Das ist * wofür das ist Danke! – cat

+1

Vielen Dank Du auch! Du hast mich Dinge lernen lassen;) –

+0

Wenn Sie neugierig sind, war die Anwendung hier: http://codegolf.stackexchange.com/a/76314/46231: P – cat

Verwandte Themen