ガイド、チュートリアル& インサイト
Shifterチームが提供するレジデンシャルプロキシ、ウェブスクレイピング、データ収集戦略、業界のベストプラクティスについて学ぶ。
べき等なスクレイパーの設計:重複なしで再開する
スクレイパーはクラッシュする。クロール中に10回落としてみた結果、素朴な実装は最大4.3倍の行数を保存し、べき等な実装は正確に500件だった。後者を作る方法。
スクレイピングデータの文字エンコーディング: 文字コードの検出と文字化けの修正
6カ国の上位ホームページ193件を取得した。一般的なPythonのデフォルト設定により、そのうち37件のテキストが文字化けした。ブラウザと同じ方法でスクレイピングしたページをデコードする方法。
生のレスポンスを残す: スクレイピングしたページをWARCでリプレイ用にアーカイブする
パーサーは改善され、エクストラクターは壊れるが、保存していなかったページは再度パースできない。WARCで生のレスポンスを保存する方法を、検証済みのコードと実際のサイズとともに解説する。
ページの裏にあるAPIを見つける: HTMLではなくJSONエンドポイントから収集する
多くのページはデータをJSONとして読み込みます。それを運ぶエンドポイントの見つけ方、それがページのセッションに紐づいていることが多い理由、そして責任を持って収集する方法について。
発見ソースとしてのサイトマップ:サイト全体をクロールせずにすべてのURLを見つける方法
XMLサイトマップはサイトのURL一覧を示し、変更日時が含まれることもあります。それを正しく読み取る方法と、lastmodを確認せずに信用してはいけない理由。
LLM抽出 vs セレクター: モデルにページを読ませるべき時
大規模言語モデルに18の実際のニュースページからフィールドを抽出させ、各ページ自身の構造化データと照合してスコアを算出しました。精度、コスト、そして使うべき場面について。
大規模な変更検知:ノイズに埋もれずにWebページの差分を取る方法
広告、タイムスタンプ、トークンなど、Webページは読み込むたびに変化する。正規化、フィールド単位の差分、simhashを使って本当の変更をノイズと区別する方法を、テスト済みコードとともに解説する。
HTMLのパース作業を終わらせる:JSON-LDと埋め込みデータから構造化データを抽出する方法
ほとんどのページには、すでに機械可読なデータが存在する。壊れやすいセレクタの代わりにJSON-LDや埋め込みJSONを抽出する方法、そしてそれが不完全な場合の対処法について。
ターゲットヘルススコアの構築:サイトが自分に敵対し始めたことを知る
サイトがクローラーを一度でブロックすることは稀だ。まずチャレンジを課し、ソフトブロックを行い、速度を落とす。これらの信号をサイトごとに1つのスコアへ変換し、行動に移す方法。