###質問内容
現在、スクレイピングの練習をしているのですが、javascriptでDOMをあつかっているサイトからうまく文章を収集できません。
例えば有名なところで言えば、2ch.scなどがそうで、スクレイピングをするだけでは文章をちゃんと取得できないのです。
これにどう対応すればうまくサイトのHTMLソースを手に入れることができるでしょうか。
###使用言語
Ruby
###該当のソースコード
require 'open-uri' require 'nokogiri' url = 'http://viper.2ch.sc/test/read.cgi/news4vip/1461508791/l50' charset = nil html = open(url, 'User-Agent' => 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A334 Safari/7534.48.3', 'Cookie' => 'READJS="off"') do |f| charset = f.charset f.read end doc = Nokogiri::HTML.parse(html, nil, charset) doc.css('dt').each do |node| p node.inner_text end
###試したこと
上記のように、
2chに関してはjsモードからcgiモードに切り替えればうまくいくかもしれないと、cookieを指定しています。
これはREADJS="off"のクッキーによってcgiモードにしているためです。
しかし、うまくいきませんでした。
ただ、この方法では2ch.sc以外では通用しないので、何か普遍的な対応策を教えていただけると幸いです。
###使用している環境
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/28 20:35