[過去ログ] Perlについての質問箱 64箱目 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
646
(4): 2020/08/16(日)03:38 ID:Degs0Zl8(1/4) AAS
Ruby の、Nokogiri で、スクレイピングしてみた

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<div>
<p>AAA</p><p>BBB</p><p>CCC</p><p>DDD</p>
</div>
EOT

p_tags = doc.css( "div > p" ) # div の直下のp
half_cnt = p_tags.length / 2

def make_p_str( ary ) # 要素の配列から、文字列を作る
省13
648: 646 2020/08/16(日)07:20 ID:Degs0Zl8(2/4) AAS
Mechanize とか、curl + Nokogiri でも、静的なページなら、DOM を取得できるけど、

Ajax など、JavaScript で、動的にDOMを組み立てている場合は、
sleep するとか、Selenium WebDriver などを使わないと、DOMを取得できない

5ch などは、空のHTMLを送ってきてから、
Ajax で、ページの内容を取得しているから、
HTMLをスクレイピングするだけでは、タイミングによっては内容が存在しない
649: 646 2020/08/16(日)07:27 ID:Degs0Zl8(3/4) AAS
Ruby で、curl, Nokogiri の例

require 'nokogiri'

html = `curl http://www.example.com/`
doc = Nokogiri::HTML( html )

elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain

open-uri の例
省4
651: 646 2020/08/16(日)09:02 ID:Degs0Zl8(4/4) AAS
Selenium WebDriver なら、指定した要素が出現するまで、指定した時間だけ待ってくれる

漏れは、10〜20秒ぐらいを指定してる
659: 636 2020/08/16(日)20:53 ID:we+09hKc(1) AAS
返信が遅くなってすいません
>>640,643,646
勉強になりました
ありがとうございました
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.169s*