自分の場合 Googleアカウントの認証を Mechanizeで通そうとしたときのこのエラーに遭遇した。 /opt/local/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/util.rb:40:in `iconv': can't convert nil into String (TypeError) from /opt/local/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/util.rb:40:in `from_native_charset' from /opt/local/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/form.rb:152:in `from_native_char
id:otn:20090429 と id:otn:20090630 と id:otn:20090823 の続き。 一旦解決したかに思った、MechanizeのUTF8以外のページの処理ですが、昨日、「mixiの各コミュニティーの最新トピック一覧作成」処理がこけたので調べてみると、№ (1文字の"No.")の文字の所でページが終わったかのごとく処理されてました。 やっぱり、「JIS範囲外の文字が混じったEUC-JPのページ」がうまく処理されないようです。「そもそもそんなものは存在してはいけない」という突っ込みは、mixiの方にお願いします。 ですが、nkfだとちゃんと 1文字の"No." とか 丸付き数字 もEUC-JPからUTF-8に変換できます。ページの文字コード変換はMechanizeじゃなくてNokogiriがしていますが、iconv を使っている。iconvで 丸付き数字 を変換し
WWW::Mechanizeを0.9.2にupdateすると、以下のエラーになってクリック証券スクレイピングライブラリが動作しなくなった・・・。 Iconv::InvalidEncoding: invalid encoding ("Windows-31J", "UTF-8") /usr/lib/ruby/gems/1.8/gems/mechanize-0.9.2/lib/www/mechanize/util.rb:40:in `iconv' /usr/lib/ruby/gems/1.8/gems/mechanize-0.9.2/lib/www/mechanize/util.rb:40:in `from_native_charset' /usr/lib/ruby/gems/1.8/gems/mechanize-0.9.2/lib/www/mechanize/form.rb:151:in `f
久々にちょっと早く帰れたので、jijiのクリック証券プラグインを作っていたわけですが、レート情報を取ってくるところで以下のエラーが起きる。 , [2009-06-03T02:25:04.651000 #7420] ERROR -- : can't modify frozen object (TypeError) /usr/lib/ruby/1.8/net/https.rb:138:in `verify_mode=' /usr/lib/ruby/1.8/net/https.rb:138:in `verify_mode=' /usr/lib/ruby/gems/1.8/gems/mechanize-0.9.0/lib/www/mechanize/chain/ssl_resolver.rb:20:in `handle' /usr/lib/ruby/gems/1.8/gems/mechanize-
ただし WWW::Mechanize 0.8.x + Hpricot 時代のノウハウ。 オプション一つで取得した HTML とその解析結果のオブジェクトを全ページ保存できるようにしておくLogger に吐かれる HTTP のログもひとまとめに扱えるようにしておく保存された情報を穴が開くほどよく見る ブラウザではうまくいくけど Mechanize ではダメな場合、HTTP のログはかなり重要なヒントを与えてくれる以上。 特に mechanize の取得した HTML とその解析結果のオブジェクトを自動で保存しておくようにすると、どこの何の解釈に失敗しているのかを究明するのがだいぶ楽になる。単に Hpricot を使ったときなんかもそうなんだけど、とにかく取得した HTML は即座に保存しておいた方がいいと思う。サーバにも優しいしね。 で、実際これを思ってから2週間後にできあがった、楽できるフ
自動google検索。 require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new # インスタンス生成 agent.user_agent_alias = 'Mac Safari' # User-Agentの設定 page = agent.get('http://www.google.com/') # ページ取得 search_form = page.forms.with.name('f').first # "f"という名前のフォームを探す search_form.q = 'Hello' # テキストボックス"q"に"Hello"を入力 search_results = agent.submit(search_form) # フォームのsubmitボタンを押す puts search_results.body # 結果
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
■ [ruby] RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize 今日は、RubyでWebサイトを解析するときに強い味方となるライブラリ、HpricotとWWW::Mechanizeを紹介します。 どちらも非常に強力なので、覚えておいて損はないよ! 以下ではまずHpricotでHTMLを解析・編集する方法について解説します。 次に、「はてなダイアリーの自動更新」を例にWWW::Mechanizeの使い方を解説します。 Hpricot HpricotはHTMLを解析するためのライブラリです。 例えば「あるページのリンクだけを全部抜き出したい」と思ったとき、どうしますか?scrAPIを使う?でもscrAPIはやっぱり ちょっと使いたいだけなのにパーザ(Scrape)用のクラスを定義するのが面倒なんだよね! Hpricotなら、たったこれだけで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く