botを作ったのですが、アプリ登録後、今度は一部のサイトから情報を取れないという事態が発生!わかってしまえば簡単な事ですが、意外と気付かずにハマることがあるよというのが今回のお話。Bot」を作ってみた!@nkybotさんのツイート今度は単に掻き集めたデータを配信するだけでなく、蓄積して予測するようにしています。言っても、そんなに難しい仕組みは作れないので、以下の記事を参考にしたごく単純な予測システムです。Qiitaちなみにベイジアンフィルタとは、スパムメール判定にも使われているデータ分析手法です。Parserを使って外部サイトから情報を取得しています。ライブラリですが、作成したPHPコードをcronで実行すると、何故か一部のサイトの情報が取れない!もちろんシェルで実行してもダメ!試しに、作成したPHPコードをブラウザから直接呼び出すと、今度は正常に情報を取得できた。php.iniのUserAgentに適当なブラウザを指定して、ブラウザからのアクセスに見せかければ解決しそうな予感。userAgent一覧/ユーザーエージェント一覧ですが、php.iniにUserAgentを設定後も依然として情報が取れない!仕方が無いので、PHPコード内でini_setするように変更すると何故か解決。何だか良くわかりませんが、とにかく無事ツイートできるようになりました!まとめどうやらスクレイピングでデータを取らせないように、ブラウザ以外からアクセスをブロックしているサイトがあるようです。Yahoo!などの大手サイトは問題なく取れることが多いですが、念のため常にUserAgentは指定しておいた方が良さそうです。読者になる検索はてなブログをはじめよう!grumさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。