[過去ログ] 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秒ぐらいを指定してる
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s