require 'yasuri' # "Rubyに関する新着投稿 - Qiita" を起点にする agent = Mechanize.new page = agent.get('http://qiita.com/tags/Ruby/items') # 最新3ページをスクレイピングする init_page = Yasuri.pages_init '//*[@id="main"]/div/div/div[1]/section/div[2]/ul/li[7]/a', limit:3 do # 現在のページ数text_page_idx '//*[@id="main"]/div/div/div[1]/section/div[2]/ul/li[@class="active"]/a', proc: :to_i # 各エントリをスクレイピング struct_entries '//*[@id="main"

11月に引っ越したのだけど,そのときにGoogleSpreadsheetを活用して,いい感じに物件を探すことができた. そのときに実践したこととか,気をつけたことなどを共有します. 要件を決める 最初に,どういった要求があるのか明らかにする.いま住んでる家の気に入らないところを挙げていくと明らかになると思う.僕は以下のような条件で探した. インターネットが無料であること*1料理したいのでガス二口以上 風呂とトイレが別であること ゴミ出し大変なので敷地内にゴミ置き場があること 布団を干せること 静かであること 家賃8万円以下 荷物少ないので狭くてよいSUUMOで検索するSUUMOとかで検索する.適当だけどこんな感じ.家賃でソートするよりは,新しい順とかでソートするほうがよさそうな物件見つかりがちだった. 二条城前駅、烏丸御池駅、京都市役所前駅、三条京阪駅、東山駅の賃貸・部屋探し情報一

この投稿は クローラー/スクレイピング Advent Calendar 2014の12月23日用です。 はじめに人間って凄い。 まずはこの画像を御覧ください。 図1 各国のECサイトの画像 Eコマースのサイトで、商品の詳細のページを見るだけですぐに商品名、価格を判断出来ましたよね? それが英語のサイトでも中国語のサイトでも、韓国語のページでも分かりましたよね? 凄いですね。 人間のスクレイピング能力人間は恐ろしいほどのスクレイピング能力を持っている事が分かりました。 ソースも見ない、タグも見ないで、なんとなく雰囲気だけでスクレイピングしています。 もしこの能力をコンピュータに移植できたら凄いことですね。 もし、先ほどの画像を身の回りのインターネットに一番疎い人に見せてみて下さい。 きちんとスクレイピング出来たでしょうか? おそらく出来なかった事が多いのではないかと思います。 こんな事させて

Ruby Advent Calendar 2014 17日目Ruby Advent Calendar 2014、17日目の記事になります。スクレイピング時にアクセス元のIPアドレスを分散させたいConoHaVPSではVPS1契約ごとに最大16個の追加IPアドレスを購入できます。1つあたり200円と安価で、最安のプランで契約し追加IPアドレスを16個オプションで追加すれば、17個のIPアドレスを持つVPSサーバーの出来上がりです。月額4,180円で、1IPアドレスあたり月額約246円です。非常に安価ですね。 さて、スクレイピング時にアクセス元のIPアドレスを分散させたいということは割とあるかと思います。その是非はここでは置いておくとして、ConoHaVPSを利用することで安価にその土壌となるサーバーを入手できることがわかりました。ただし、Rubyにおいてスクレイピングに有用なgemであ
勉強会やスライドで紹介していましたが、Ruby×クローラーという題材で、『Rubyによるクローラー開発技法』という本を書かせて頂きました。RubyとEmacsの鬼であるるびきちさんとの共著です。Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例 作者: るびきち,佐々木拓郎出版社/メーカー: SBクリエイティブ発売日: 2014/08/25メディア: 大型本この商品を含むブログ (1件) を見る この本を書いた理由 そもそものキッカケは、るびきちさんのエントリーにある通り、SBクリエイティブの編集者さんが、クローラーの作成経験のある人を探していて、私の書いた「オープンソースのRubyのWebクローラー"Anemone"を使ってみる」を読んで打診してくださったというのが始まりです。 私自身も、Webからデータを収集して分析するということは、趣味として長年やってきました。一

[2020/09/09追記]本記事の内容は著作権法改正より前に記載されたものです。 最新の情報をご確認下さい。 著作権法の一部を改正する法律(平成30年法律第30号)について |文化庁 令和2年通常国会 著作権法改正について |文化庁 上記に関連して、次の記事を記載致しました。 【2020年度版】個人用クローラーの開発手順とその注意点 - Qiita はじめに Webスクレイピングで誰も嫌な思いをしなくて済むように、注意事項一覧を作りました。 ただ、法律の専門家による解釈ではないので責任は取れません。 この記事は、クリエイティブ・コモンズのCC-BYで公開致しますので、ご自由にご改修下さい。 注意事項一覧 データをダウンロードする時 目的は下記のものに限る。 * 個人や家族間で使用する * Web検索サービスを提供する * 情報解析をする ※参考:著作権法第30条・著作権法第47条(

情報収集はビジネスマンとしての基本である。しかし普段シェルで作業する者としては、毎回ブラウザを立ち上げる時間すら不毛である。よって、シェルから一瞬で情報収集できるRubyのワンライナーを書いた。 上からYahoo,はてな, Naverまとめ, 2ちゃん $ruby -r open-uri -e 'open("http://www.yahoo.co.jp").read.scan(/topics.+?>([^<]+?)</) {|m| puts m}' $ruby -r open-uri -e 'open("http://b.hatena.ne.jp/hotentry").read.scan(/entry-link.+>(.+?)</) {|m| puts m}' $ruby -r open-uri -e 'open("http://matome.naver.jp/").read.sc
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です -はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。はてなグループに投稿された日記データのエクスポートについて -はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記はてなグループ日記のエクスポートデータは2020年2月28
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です -はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。はてなグループに投稿された日記データのエクスポートについて -はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記はてなグループ日記のエクスポートデータは2020年2月28
これはRuby逆引きレシピAdvent Calendar の参加エントリです。12月17日を担当します。前日の担当は @y_ogagaga さんで iCalendar形式のデータを読み書きしたいでした。 職場とか学校で、Rubyに詳しい頼りになる先輩がいるっていうのは、こんな感じなんじゃなかろーかと想像する。「こういうことしたいんですけど?」と聞いてみると「ああ、これでできるよ」と一瞬で返ってくるような。レシピ先輩(仮称)はいろいろなライブラリを知ってる。だから第1章の1.1に書いてあるのはRubyのコードの書き方じゃあなくて、有無をいわさずrubygemsをインストールして使う、ということだ。レシピ先輩はIRCをばりばり使う。だから第6章 ネットワーク処理のはじめは、ウェブじゃなくってIRC BOTのつくりかただ。レシピ先輩はいろいろなコミュニティに参加している。だから最後の第24章

Rails3とSinatra触ってみたもののWebアプリもWebサイトもネタが浮かばなかったので、軽くbot作ってみることにしました。 ネタ 最近1週間の結果 (日本将棋連盟) http://www.shogi.or.jp/kisen/week/kekka.html将棋棋戦の結果。日々更新されるので、これをツイートします。RSSとかないのでそれなりに需要もあるかと思いました。 作成過程 素人の覚え書きなので、突っ込みなどあればお願いします><スクレイピング なにはともあれまずはここから Mechanizeというgemでできるらしい 参考:はてなダイアリースクレイピングだけなら中のNokogiriだけでもいいのかも agent = Mechanize.new agent.get('http://www.shogi.or.jp/kisen/week/kekka.html') agent.
と書いたのだが、他の図書館でも、一度タイムアウトすると、同じCookieを持ってアクセスすると応答がなくなるという同様の現象が発生するところが見つかった。 気づいたのはたまたまだったのだが、 岡崎市立図書館と同じ、MELILを採用している図書館のリストが、 日本のソフト別OPACリスト[http://www.asahi-net.or.jp/~gb4k-ktr/indexjv.htm#melil] にあり、この中で検索ページが.aspになっているものでは同じ現象が発生する様で、発生条件もかなり緩く、 検索などでのタイムアウト発生 応答が遅かった場合のキャンセル 検索結果ページを閲覧していて、画面内の戻るボタン以外でページ遷移を行った場合 に、以降の応答がなくなるという症状が発生する様だ。 検索ページが.aspxになっているものでは、確認した範囲では発生を見ていないので、これは後に改修されたの
#Librahack[http://twitter.com/search?q=%23librahack] の議論。多く登場する「スクレイピング」と書こうと思ったけれども、クロールで得たHTMLの後処理がスクレイピングだから、ここでは「クロール」対「DoS」とした。 そもそも、クロールとDoSは行っている側の目的に決定的な違いがある。 クロールを行う際は、クロールによって相手サーバの情報を取得することが目的だ。そのために、リクエストに対する応答を受け取って、そのまま保存するなり、何らかの加工(スクレイピング)を行って、情報を保存する。 情報を得るのが目的だから、サーバが落ちるのは困る立場だ。 一般的な作りとしては、ページのリクエストを出して、結果を受け取ったら、その場で解釈して、次にリクエストを出すページを決めるか、あるいは予め予定している次のページのリクエストを出す。この間に待ち時間を入れ
■ 岡崎図書館事件について その1 5月26日にこんな報道があった。図書館HPにアクセス3万3000回 愛知県警 業務妨害容疑、38歳を逮捕, 朝日新聞2010年5月26日朝刊 県警生活経済課と岡崎署によると、容疑者は、4月2日から15日にかけて、岡崎市中央図書館のホームページに、計約33,000回のアクセスを繰り返し、ホームページを閲覧しにくい状態にしたという疑いがある。(略) 同課によると、容疑者は1回ボタンを押すだけで、1秒に1回程度の速度でアクセスを繰り返せるプログラムを作っていたという。容疑者は同図書館の利用者だったが、目立ったトラブルは確認されていないといい、動機を調べている。図書館にサイバー攻撃, 読売新聞2010年5月26日朝刊 県警は25日、インターネット関連会社社長を偽計業務妨害容疑で逮捕した。(略) 調べに対し、アクセスしたことは認めているが、動機については話して
こんにちは、趣味や業務で大手ポータルサイトのサービスで稼働しているいくつかのクローラの開発とメンテナンスを行っているmalaです。 さて先日、岡崎市立中央図書館Webサイトをクロールしていた人が逮捕、勾留、実名報道されるという事件がありました。 関連URL: http://librahack.jp/ 電話してみた的な話 http://www.nantoka.com/~kei/diary/?20100622S1 http://blog.rocaz.net/2010/06/945.html http://blog.rocaz.net/2010/07/951.html この件につきまして法的なことはともかくとして技術者視点での私見を書きたいと思います。法的なことは差し置いて書きますが、それは法的なことを軽んじているわけではなく、法律の制定やら運用やらは、その法律によって影響が出る全ての人々の常識
岡崎市中央図書館に1秒間に1回アクセスしたら逮捕されたけど不起訴になった件について。 当事者からの報告とそれに関連した高木先生などのつぶやきをまとめています。不完全かつ進行中です。

1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く