深色proxyscrape 徽标

我是如何成为铅 "百万富翁 "的

Feb-01-20245 分钟阅读

~ Arya 的网络抓取故事 -ProxyScrape 用户

我必须声明,我不是ProxyScrape 的官方代表。不过,我是他们服务的忠实粉丝和客户。如果您还没有使用他们的服务,我强烈建议您使用!以下观点和想法完全属于我个人观点。


"哦,不可能"

这正是我在凌晨三点喃喃自语的感慨,我意识到,这家曾经像送牛奶一样时髦的公司,这家大多数人认为属于迪斯科音乐和狂野霓虹灯时代的公司,现在仍然像 80 年代的糟糕发型一样到处乱窜,而且不幸的是,它无处不在。

这家公司在其鼎盛时期是货真价实的。我的意思是,在它的鼎盛时期,你无法摆脱它。现在,只有在养老院里,人们才会带着一丝怀旧的情绪念叨它的名字。

"黄页"

你可能会问:"这有什么关系?为什么会有人在乎? 为什么这不是 30 年代的 TikTok,而另一半是一个正在玩《GTA 5》的家伙?"网络搜刮最热门的用途之一就是发现和生成潜在客户。在我们的资本主义仙境中,每个人都在兜售一些疯狂的东西,在互联网上搜索那些会 "HODL "和 "FOMO "到你那形状像 "半个菱形 "的加密分时度假的傻瓜是很有意义的。而且,我想说明的是,"这不是传销......只是形状像埃及那些著名的尖东西"。

那么,重点来了。在我看来,B2B 潜在客户生成的绝对瑰宝之一非 YellowPages(或 Yell,适合 "嚼日 "的人)莫。为什么这么说呢?让我来解释一下:

  1. "耻辱墙":那些尚未完全跟上互联网时代的遗老遗少仍在那里徘徊。你爷爷的生意很可能就在那里,就像你因为 TikToks 而创办的 SMMA,不到三个月就发誓不干了,现在却在谷歌的企业名录中永垂不朽。

  1. "我和其他女孩不一样":虽然刚出道的搜刮者认为谷歌地图是小企业线索的圣杯,但每一个精明的搜刮者都知道这是一派胡言--谷歌地图已经饱和,每一个受某个光头男子启发的 14 岁少年都曾骚扰过这些企业。

  1. "就像从婴儿手中夺走糖果":YellowPages 及其衍生网站没有一丝一毫的保护措施。我可以在几秒钟内搜刮到他们目录中的每一家企业。我们说的是数以千万计的线索。

当然,它可能不是营销界的热门词汇,但机会就在其中。在其他人追逐最新潮流的时候,少数精明的人认识到了互联网中被遗忘角落的潜力。黄页可能是过去的遗物,但在潜在客户生成领域,它却是潜力尚未开发的遗物,是通向成功的路线图。

现在,你可能会问:"我该如何利用这样的机会呢?- 让我们一起走过每一个步骤,希望到最后,即使是你们中的一些尼安德特人也能刮开 YellowPages。

我们将像对待其他网站一样来处理这个问题。第一步是搞清楚网站是如何运行的。这通常需要你,是的,你,弄清楚如何导航到多汁数据所在的位置。不!*^......如果你找不到数据,怎么提取数据?

如上图所示: YellowPages Canada 的登陆页面,这篇文章的不幸受害者。

如上图所示,在他们的登陆页面上有两个文本输入,一个是搜索词,另一个是地点。让我们填写这些内容并进行搜索;我将在 "安大略省多伦多市 "寻找 "牙医"。

如上图所示: YellowPages Canada 的列表结果页面。

一旦你弄清了自己的 ABC 并填写了这些信息,设法找到搜索按钮并点击它(我很佩服你),你应该会被重定向到一个类似上面的页面,其路径如下:

/search/si/1/Dentists/Toronto+ON

我们可以推导出以下路径结构(这在后面会很有用):


/search/si/[页码]/[搜索词]/[地区]+[地区代码]

另外需要注意的是,我们已经找到了我们想要的数据,即企业列表--让我们弄清楚这些企业列表是从哪里加载进来的,它应该是在文档中发送的,或者是从 API 端点获取的(如果你很笨,相信我,我见过这种情况--websockets)。

如上图所示:来自页面的 fetch/XHR 请求。(剧透:其中没有任何数据)。

如上图所示:文件中的企业列表。(OMGEEE 事实上,数据就在文件中)。

当我们从 API 请求中筛选数据时,发现这是徒劳的。于是,我们将注意力转向了 HTML。这里有一个小插曲--"在数字领域摸爬滚打了十多年"之后,我本能地知道数据就在文档中,这要归功于页面的快速反应能力。

不过,我们还是实事求是吧。考虑到 YellowPages 作为一家电话簿公司急切地寻求相关性,更关键的是寻求收入,他们不太可能炫耀尖端的技术堆栈。他们雇用那些穿着法兰绒服装、简历上有 50 个基于 React 的待办事项应用程序的开发人员的可能性微乎其微。那么,我们真的会因为网页是静态的而感到震惊吗?

不过,页面中的列表都包含在一个 div 中,可使用选择器 "div.resultList "提取。每个单独的列表都嵌套在上述元素中,可以使用选择器 "div.resultList "提取。 div[itemtype="http://schema.org/LocalBusiness] 

至于如何单独提取超出这种粒度的数据,我就不多说了,否则我们就得一直在这里耗下去了。使用 "itemprop "属性--它会大大简化你的操作过程。

现在,自动提取:您应该使用 URL 对结果进行分页(记得我们之前讨论过的路径结构),从每个页面提取元素和数据,直到找到空页面为止。我个人选择在这个项目中使用 Rust,因为它速度快,而且易于并行化(这一点稍后会很重要),利用 "reqwest "和 "select "板条箱来处理繁重的工作。这里有一些专业提示:记住旋转你的用户代理,正确设置你的推荐人,使用代理,还有请不要使用 DDOS。

如上图所示:YellowPages 的空结果页面。

您的脚本现在应该可以正常运行了。但我们如何才能进一步提升呢?让我们动动脑,思考一下...... "我们需要按顺序申请每一页吗?绝对不需要。YellowPages 通过提供可供查询的页面数量,让我们非常容易地并行处理这一过程--提示、提示、眨眼、眨眼。

如上图所示:YellowPages 结果页面底部的页面计数。

不过,这种并行化策略有一个注意事项:虽然 YellowPages 可能会提示存在超过 60 页的结果,但尝试访问结果中超过 60 页的任何页面都不会呈现。因此,请将并行化的硬性上限设定为 60 页。假设带宽和计算能力充足,在顺序模式下,每个结果页面的搜索时间应与搜索一个页面的时间相同。

如上图所示:提取的 YellowPages 列表数据示例。

现在,你可能会问,这是点击诱饵吗?百万富翁 "和这些有什么关系?好吧,如果你一直在关注,并且现在已经拥有了一个实用的脚本,那么我可以亲自证明,理论上没有任何东西可以阻止你遍历加拿大的每一个城市,并从 YellowPages 中提取该城市内查询到的每一个企业列表。如果经过适当的扩充,这些数据的价值可能高达数百万美元,但实际上,他们目录中的数百万家企业现在都在你的掌握之中。

YellowPages 可能会唤起人们对逝去时代的回忆,但它在 B2B 潜在客户生成方面的潜力仍然是数字领域中一个隐藏的宝库。通过浏览其静态网页界面的怪异之处,从这个看似过时的平台上获取数据,可以发现大量的商业线索。YellowPages 被忽视和利用不足的特性使其成为一个独特的机会。

我唯一的目标是,这篇博文不会让你觉得 "真正的财富是我们一路上结交的朋友"--我希望这篇博文既能展示存在的独特机会,尤其是我们中许多人认为理所当然的技能组合,也希望能为那些在这一领域有经验的人提供有趣的阅读,并为那些没有经验的人提供深刻的见解。

一如既往,注意安全,使用保护措施,看在上帝的份上......不要做联邦调查局会找你麻烦的事情--嗯......在这种情况下,应该是皇家骑警。

上图所示:加拿大联邦调查局的对等机构--加拿大皇家骑警。