[過去ログ]
Perlについての質問箱 64箱目 (1002レス)
Perlについての質問箱 64箱目 http://mevius.5ch.net/test/read.cgi/tech/1548981877/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
646: デフォルトの名無しさん [sage] 2020/08/16(日) 03:38:06.22 ID:Degs0Zl8 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 ) # 要素の配列から、文字列を作る str = "" ary.each do |elem| tmp = elem.to_html # 要素 tmp.chomp! # 末尾の改行を削除する str += tmp # 連結 end str end p str_before = make_p_str( p_tags[ 0...half_cnt ] ) # 前半 p str_after = make_p_str( p_tags[ half_cnt..-1 ] ) # 後半 出力 "<p>AAA</p><p>BBB</p>" "<p>CCC</p><p>DDD</p>" http://mevius.5ch.net/test/read.cgi/tech/1548981877/646
648: 646 [sage] 2020/08/16(日) 07:20:54.63 ID:Degs0Zl8 Mechanize とか、curl + Nokogiri でも、静的なページなら、DOM を取得できるけど、 Ajax など、JavaScript で、動的にDOMを組み立てている場合は、 sleep するとか、Selenium WebDriver などを使わないと、DOMを取得できない 5ch などは、空のHTMLを送ってきてから、 Ajax で、ページの内容を取得しているから、 HTMLをスクレイピングするだけでは、タイミングによっては内容が存在しない http://mevius.5ch.net/test/read.cgi/tech/1548981877/648
649: 646 [sage] 2020/08/16(日) 07:27:51.64 ID:Degs0Zl8 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 の例 require 'open-uri' require 'nokogiri' url = 'http://www.example.com/' doc = Nokogiri::HTML(open(url)) http://mevius.5ch.net/test/read.cgi/tech/1548981877/649
651: 646 [sage] 2020/08/16(日) 09:02:04.52 ID:Degs0Zl8 Selenium WebDriver なら、指定した要素が出現するまで、指定した時間だけ待ってくれる 漏れは、10〜20秒ぐらいを指定してる http://mevius.5ch.net/test/read.cgi/tech/1548981877/651
659: 636 [] 2020/08/16(日) 20:53:31.17 ID:we+09hKc 返信が遅くなってすいません >>640,643,646 勉強になりました ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1548981877/659
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.042s