希望提供帮助?以下是您的选择:","Crunchbase","关于我们","感谢大家的大力支持!","快速链接","联属会员计划","高级","ProxyScrape 高级试用","代理类型","代理国家","代理用例","重要","Cookie 政策","免责声明","隐私政策","条款和条件","社交媒体","在 Facebook 上","LinkedIn","推特","Quora","电报","不和谐音","\n © Copyright 2024 -Thib BV| Brugstraat 18 | 2812 Mechelen | Belgium | VAT BE 0749 716 760\n"]}
~ Arya 的网络抓取故事 -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,不到三个月就发誓不干了,现在却在谷歌的企业名录中永垂不朽。
"我和其他女孩不一样":虽然刚出道的搜刮者认为谷歌地图是小企业线索的圣杯,但每一个精明的搜刮者都知道这是一派胡言--谷歌地图已经饱和,每一个受某个光头男子启发的 14 岁少年都曾骚扰过这些企业。
"就像从婴儿手中夺走糖果":YellowPages 及其衍生网站没有一丝一毫的保护措施。我可以在几秒钟内搜刮到他们目录中的每一家企业。我们说的是数以千万计的线索。
当然,它可能不是营销界的热门词汇,但机会就在其中。在其他人追逐最新潮流的时候,少数精明的人认识到了互联网中被遗忘角落的潜力。黄页可能是过去的遗物,但在潜在客户生成领域,它是潜力尚未开发的遗物,也是通往成功的路线图。
现在,你可能会问:"我该如何利用这样的机会呢?- 让我们一起走过每一个步骤,希望到最后,即使是你们中的一些尼安德特人也能刮开 YellowPages。
我们将像对待其他网站一样来处理这个问题。第一步是搞清楚网站是如何运行的。这通常需要你,是的,你,弄清楚如何导航到多汁数据所在的位置。不!*^......如果你找不到数据,怎么提取数据?
Shown Above: YellowPages Canada’s landing page, the unfortunate victim of this post.
如上图所示,在他们的登陆页面上有两个文本输入,一个是搜索词,另一个是地点。让我们填入这些内容并进行搜索;我将在 "安大略省多伦多市 "寻找 "牙医"。
Shown Above: YellowPages Canada’s listing results page.
一旦你弄清了自己的 ABC 并填写了这些信息,设法找到搜索按钮并点击它(我很佩服你),你应该会被重定向到一个类似上面的页面,其路径如下:
/search/si/1/Dentists/Toronto+ON
我们可以推导出以下路径结构(这在后面会很有用):
/search/si/[页码]/[搜索词]/[地区]+[地区代码]
另外需要注意的是,我们已经找到了我们想要的数据,即企业列表--让我们弄清楚这些企业列表是从哪里加载进来的,它应该是在文档中发送的,或者是从 API 端点获取的(如果你很笨,相信我,我见过这种情况--websockets)。
如上图所示:来自页面的 fetch/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 作为一家电话簿公司急切地寻求相关性,更关键的是寻求收入,他们不太可能炫耀尖端的技术堆栈。他们雇用那些穿着法兰绒服装、简历上有 50 个基于 React 的待办事项应用程序的开发人员的可能性微乎其微。那么,我们真的会因为网页是静态的而感到震惊吗?
不过,页面中的列表都包含在一个 div 中,可使用选择器 "div.resultList "提取。每个单独的列表都嵌套在上述元素中,可以使用选择器 "div.resultList "提取。 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 页。假设带宽和计算能力充足,在顺序模式下,每个结果页面的搜索时间应与搜索一个页面的时间相同。
如上图所示:提取的 YellowPages 列表数据示例。
现在,你可能会问,这是点击诱饵吗?百万富翁 "和这些有什么关系?好吧,如果你一直在关注,并且现在已经拥有了一个实用的脚本,那么我可以亲自证明,理论上没有任何东西可以阻止你遍历加拿大的每一个城市,并从 YellowPages 中提取该城市内查询到的每一个企业列表。如果经过适当的扩充,这些数据的价值可能高达数百万美元,但实际上,他们目录中的数百万家企业现在都在你的掌握之中。
YellowPages 可能会唤起人们对逝去时代的回忆,但它在 B2B 潜在客户生成方面的潜力仍然是数字领域中一个隐藏的宝库。通过浏览其静态网页界面的怪异之处,从这个看似过时的平台上获取数据,可以发现大量的商业线索。YellowPages 被忽视和利用不足的特性使其成为一个独特的机会。
我唯一的目标是,这篇博文不会让你觉得 "真正的财富是我们一路上结交的朋友"--我希望这篇博文既能展示存在的独特机会,尤其是我们中许多人认为理所当然的技能组合,也希望能为那些在这一领域有经验的人提供有趣的阅读,并为那些没有经验的人提供深刻的见解。
一如既往,注意安全,使用保护措施,看在上帝的份上......不要做联邦调查局会找你麻烦的事情--嗯......在这种情况下,应该是皇家骑警。
上图所示:加拿大联邦调查局的对等机构--加拿大皇家骑警。