require 'nokogiri' require 'open-uri' html = open('http://codaholic.org') do |data| data.read end doc = Nokogiri::HTML.parse(html) doc.css('a').each do |anchor| p anchor[:href] end
[PHP] PHP Simple HTML DOM Parser で繰り返し処理を行うとメモリが大量に消費されるのを回避する PHP Simple HTML DOM Parserという HTML をパースを行い jQuery のように簡単にスクレイピングすることができるライブラリがあるのですが、for などで繰り返しメソッドを使用すると大量にメモリを消費してしまい処理が中断してしまうことがありました。 その原因を調べたところ有名な現象のようですぐに解決策が見つかりました。下記のように $html の使用が終わったら clear メソッドの実行し、$html も unset することで for で繰り返してもメモリの大量消費が発生することはなくなりました。
object(stdClass)#2 (11) { ["completed_in"]=> float(0.171) ["max_id"]=> float(1.12510849201E+17) ["max_id_str"]=> string(18) "112510849201086465" ["next_page"]=> string(90) "?page=2&max_id=112510849201086465&q=%E3%83%96%E3%83%AD%E3%83%83%E3%82%B3%E3%83%AA%E3%83%BC" ["page"]=> int(1) ["query"]=> string(54) "%E3%83%96%E3%83%AD%E3%83%83%E3%82%B3%E3%83%AA%E3%83%BC" ["refresh_url"]=> string(85) "?since_
Twitterから情報を取得するにはOAuthの認証が必要だと思い込んでいたのですが、単純にGETリクエストを送れば取得できることが分かりました。以下のサンプルコードでは、PHPを利用して名前、フォロー数、フォロワー数、ツイート数を取得してみます。 私の情報を取得してみます。 <?php $url = "http://api.twitter.com/1/statuses/user_timeline.xml?id=suzukitoshinari"; $xml = simplexml_load_file($url); print "名前:".$xml->status->user->name."<br />"; print "フォロー数:".$xml->status->user->friends_count."<br />"; print "フォロワー数:".$xml->status->user
はてなブックマークにはAPIが用意されており、外部から情報を取得することが出来ます。用意されたガジェットやボタンではデザインを変更できませんが、テキストで取得すれば自由に変更することができ便利です。また、ソートに使用したり、そのURLの人気度合いのスコアを計算するのに使ったりといろいろと用途は考えられます。ブックマーク数をPHPを使って取得する方法を2パターンご紹介します。 方法1 ブックマーク数取得用のエンドポイントにGETリクエストを送信する ブックマーク数を取得するだけであれば、GETリクエストを送るだけで取得することができます。お手軽です。 <?php $response = file_get_contents('http://api.b.st-hatena.com/entry.count?url=http://www.yahoo.co.jp/'); print $response
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く