私がリードの "億万長者 "になるまで

2月 -0520245分で読める

~ アーリアによるウェブスクレイピングの物語 -ProxyScrape ユーザー

ProxyScrapeしかし、私は彼らのサービスの大ファンであり、顧客でもある。もしあなたがまだ同社のサービスを利用していないのであれば、ぜひ利用することをお勧めする!以下の意見や感想はすべて私個人のものです。

"ああ、あり得ない"

かつては牛乳配達のようにトレンディで、ディスコミュージックとネオンカラーのワイルドな衣装の時代とほとんどの人が見なすような会社が、80年代の悪い髪型のようにいまだにあちこちにある。

この会社は全盛期には本物だった。つまり、全盛期には逃れることはできなかった。今では、その名前は老人ホームでノスタルジーを滲ませながら呟かれるだけだ。

「イエローページ

You might be wondering, “Why does this matter? Why should anyone give a damn? Why is this not a 30s TikTok with a dude playing GTA 5 on the other half of it?” Well, one of the hottest uses for web scraping is lead discovery and generation. In our capitalist wonderland where everyone’s peddling some crazy sh*t, it just makes sense to scour the internet for the suckers who’ll “HODL” and “FOMO” into your crypto timeshare that’s shaped like “half a rhombus”. And hey, just to be clear, “it’s NOT a pyramid scheme… it’s just shaped like those famous pointy things in Egypt.”

So, here’s the kicker. One of the absolute gems for B2B lead generation, in my humble opinion, is none other than YellowPages (or Yell for you “chewsday” people). Why? Well, let me break it down:

"恥の壁":インターネット時代に全く追いついていない遺物は、まだそこにぶら下がっている。TikToksがきっかけで始めたSMMAを3ヶ月でやめ、今ではGoogleのビジネス・ディレクトリで不滅の存在になっているように。

「私は他の女の子とは違う」:新顔のスクレイパーはグーグルマップが中小企業のリードの聖杯だと信じているが、精通したスクレイパーは皆、それがたわごとであることを知っている-飽和状態であり、あるハゲ男に触発された14歳は皆、それらの企業に嫌がらせをしている。

「赤ん坊からキャンディーを取るようなもの」:イエローページとその派生サイトは、一片の保護もない。YellowPagesとその派生サイトには保護のかけらもない。ここでは何千万ものリードの話をしているのだ。

確かに、マーケティング界ではバズワードではないかもしれないが、そこにチャンスがある。他の人々が最新のトレンドを追い求める中、賢明な一部の人々は、インターネットの忘れ去られた片隅にある可能性を認識している。イエローページは過去の遺物かもしれないが、リードジェネレーションの世界では、未開拓の可能性と成功へのロードマップを秘めた遺物なのだ。

さて、あなたは "このような機会をどのように利用すればいいのか?"と尋ねているかもしれない。- 願わくば、ネアンデルタール人であるあなた方でさえ、これが終わるころにはYellowPagesをスクラップできるようになっていることだろう。

私たちは、他のウェブサイトと同じようにアプローチする。最初のステップは、ウェブサイトがどのように機能しているかを理解することだ。そのためには、ジューシーなデータがある場所へのナビゲート方法を見つけ出す必要がある。いや、もし見つけられなかったら、どうやってデータを取り出すんだ?

Shown Above: YellowPages Canada’s landing page, the unfortunate victim of this post.

ランディングページの上の方にあるように、2つのテキスト入力がある-1つは検索用語、もう1つは場所だ。これらを入力して検索してみよう。私は "オンタリオ州トロント "で "歯医者 "を探すつもりだ。

Shown Above: YellowPages Canada’s listing results page.

自分のABCを把握し、それを記入し、検索ボタンを見つけてクリックすることができたら(私は感心している)、上のようなページにリダイレクトされるはずだ:

/検索/si/1/歯医者/トロント+ON

次のようなパス構造を推論することができる(これは後で役に立つ):


/search/si/[ページ番号]/[検索語]/[地域]+[地域コード]

もう一つ注意しなければならないのは、我々は既に欲しいデータ、つまりビジネス・リストを探している。

上に表示:ページからのフェッチ/XHRリクエスト。(ネタバレ: データはどれにもありません)。

上に表示:文書内の企業リスト。(OMGEEE データは実際に文書内にあった)。

As we sifted through the API requests, looking for the data, it was proven futile. We then turned our attention to the HTML. Now, here’s a little nugget of insight for you – after “navigating the digital landscape for over a decade”, I knew instinctively that the data was within the document, thanks to the pages’ snappy responsiveness.

しかし、現実を見よう。YellowPagesが電話帳の会社であることを考えると、関連性と、より重要な収益を必死に求めており、最先端の技術スタックを誇示している可能性は低い。フランネルを見せびらかし、履歴書にReactベースのToDoアプリを50個も書いている開発者を雇う可能性は限りなくゼロに近い。では、ウェブページが静的であることに純粋にショックを受けているのだろうか?

とはいえ、ページ内のリストは、セレクタ "div.resultList "を使用して抽出可能なdiv内に含まれています。個々のリストは、前述の要素に入れ子になっており、セレクタ div[itemtype="http://schema.org/LocalBusiness] 

このレベルの粒度以上のデータを個別に抽出する方法は、あなたに任せる。itemprop "属性を使ってください。

Now, to automate extraction: You should paginate through the results using the URL (recall the path structure we discussed earlier), extracting elements and data from each page until you hit an empty page. I personally opted to use Rust for this project as it’s fast and provides easy parallelization (which will be important in a second), leveraging the “reqwest” and “select” crates to handle the heavy lifting. And here’s a few pro tips: remember to rotate your user agent, set your referrer correctly, use a proxy, and PLEASE don’t DDOS them.

上の写真YellowPagesの空の結果ページ。

Your script should be good to go now. But how can we elevate this even further? Let’s put our singular combined brain cell to work and ponder… “Do we need to sequentially request each page?” Absolutely not. YellowPages makes it remarkably easy for us to parallelize this process by providing the number of pages available for the query – hint, hint, wink, wink.

上に表示:YellowPagesの検索結果ページ下部のページ数。

しかし、この並列化戦略にはひとつ注意点がある:YellowPagesは60ページ以上の結果が存在することを示唆するかもしれませんが、結果上の60を超えるページにアクセスしようとしてもレンダリングされません。従って、並列化の上限は60ページに設定してください。十分な帯域幅とコンピューティングパワーがあれば、シーケンシャルモデルで1ページをスクレイピングするのと同じ時間ですべての結果ページをスクレイピングできるはずです。

上の写真抽出されたYellowPagesのリスティングデータの例。

これはクリックベイトなのか?億万長者」がどう関係あるのだろう?さて、もしあなたがこのスクリプトを読んで、機能的なスクリプトを持っているのであれば、カナダのすべての都市を繰り返し検索し、YellowPagesからその都市内のクエリからすべてのビジネスリストを取得することを理論的に妨げるものは何もないことを、私は個人的に証明することができるかもしれないし、できないかもしれない。このデータは、適切に増強された場合、文字通り数百万ドルの価値を保持するかもしれませんが、それはまた、今あなたの手の届く範囲にある彼らのディレクトリ内のビジネスの文字通り数百万です。

YellowPagesは過ぎ去った時代の記憶を呼び起こすかもしれないが、B2Bリードジェネレーションの可能性はデジタルランドスケープにおける隠れた宝庫である。静的なウェブインターフェースの癖をうまく利用し、この一見時代遅れのプラットフォームからデータをかき集めることで、膨大な数のビジネスリードが見えてきます。イエローページは見過ごされ、十分に活用されていないため、またとないチャンスなのです。

私の唯一の目標は、このブログ記事が「本当の宝物は、その過程でできた友人たちだった」と思わせないことだ。このブログが、特に多くの人が当たり前のように使っているスキルセットで存在するユニークな機会を示すと同時に、この分野で経験を積んでいる人には興味深い読み物として、そうでない人には洞察力を与えてくれることを願っている。

いつものように、安全第一で、防護服を着用し、くれぐれも......FBIに追われるようなことはしないこと。

上の写真:カナダのFBIに相当する組織、RCMP。