hkのweblogスマートフォン用の表示で見るhkのweblogひよっこエンジニアがにわとりになるまでの軌跡この広告は、90日以上更新していないブログに表示しています。スクレイピング先日、とあるwebメディア制作の会社から、「地域名×キーワード」でGoogle検索結果上位50件をcsvにまとめてほしいという依頼を受けました。その時書いたPythonスクリプトをメモがてら公開します。Pythonを書くのは久しぶりで細かい改善の余地はありそうですが、とりあえずこれで用は足りるだろうという程度のものです。苦戦したポイントがいくつかあったのであげておきます。GoogleとYahooはスクレイピングに厳しかった最初はGoogleの検索結果ページ用のものを書いていたのですが、しばらくやっているうちに大量リクエストを検知されたようでIP制限をかけられてしまいました。なると検索毎にreCaptchaのチェックを求められるので為す術がありません。リクエストの間にランダムで5~10秒スリープする処理を入れたりもしてみたのですが、あまり効果はありませんでした。Yahooに至っては最初のリクエストから弾かれてしまいました。いうことで、Googleで検索しきれなかった分についてはBingで処理しました。Bingは優しいのかな?よく分かりませんが、スクレイピング自体グレーな行為ではあるので利用は常識的範囲に留めておきたいものです。JISに置き換えられない文字が結構ありました。こちらの記事は代表例ですが、他にも色々引っかかるみたいです。qiita.comL68,71あたりで諦めています。日本語がURLエンコードされた場合に顕著ですが、Excelの1セルにURLが収まらないことがありました。そこでbit.lyを使って長過ぎるURLは短縮する処理を入れています。余談ですが、古めのMacのExcelではHYPERLINKがうまく機能しない場合があるようです。こちらは良い解決策が見つけられませんでした。最後に使ったスクリプトを載せます。2.1でSPA的なものを作っている話のつづき少し間が空きましたが、前回の記事の続きです。»プロフィールid:h2r4t都内で働く新米webエンジニアです。このブログは月2更新が目標。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事Bingの検索結果をcsvで出力するPythonスクリプトを書いたcanvasで画像ファイルを読み込むVue.jsでsetTimeoutする時の注意点rsyncについてのメモスレッドが競合した時のこと月別アーカイブはてなブログをはじめよう!h2r4tさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。