目录
人们可以轻松地从 Facebook、Reddit 和 Twitter 等多个来源收集和搜刮信息。你可以把搜刮器看作是一种专门的工具,它能准确、快速地从网页中提取数据。搜刮 API 可以帮助搜刮者避免被网站设置的反搜刮技术禁止。不过,与自己管理的代理工具相比,使用 API 的成本较高。
您使用过 Reddit 吗?如果你是一个社会研究者,并且经常上网,那么你很可能听说过 Reddit。Reddit 自诩为 "互联网的头版"。它是一个在线讨论论坛,人们在这里分享内容和新闻,或对其他人的帖子发表评论。因此,对于互联网营销人员和社会研究人员来说,它是一个令人难以置信的数据来源。
Reddit 有一个名为 Python Reddit API Wrapper(简称 PRAW)的 API,用于抓取数据。在本博客中,我将向你展示如何使用 python 抓取 Reddit 的步骤。但在此之前,你需要知道为什么要抓取 Reddit。
为什么需要搜索 Reddit?
如果我们谈论 Reddit 的设计,那么它被分成几个社区,称为 "subreddits"。你可以在互联网上找到与你感兴趣的话题相关的任何子红地毯。社会研究人员在提取 Reddit 上关于特定主题的讨论时,会进行分析、推断并实施可行的计划。
您可以从 Reddit 上获取大量数据,例如
- 链接
- 评论
- 图片
- 子论坛列表
- 每个子论坛的提交内容
- 用户名
- 向上投票
- 向下投票
您可以从 Reddit 搜刮与您业务相关的任何信息,因为您有以下需求:
- 构建 NLP 应用程序
- 跟踪客户情绪
- 紧跟市场趋势
- 消费者研究
- 监测营销活动的效果
例如
- 某时尚品牌需要搜索时尚子论坛中的所有评论文本、标题、链接、图片和标题,以便:
- 制定正确的定价策略
- 识别色彩趋势
- 通过各种品牌发现时尚达人的痛点
- 新闻和新闻从业人员必须收集带有博客链接的作者文章,以训练自动文本摘要的机器学习算法。
- 投资和交易公司必须搜索与 "股票市场 "相关的 subreddits,通过解读正在讨论的股票来制定投资计划。
搜索 Reddit 所面临的挑战
Reddit 搜刮使用网络搜刮器(计算机程序)从 Reddit 网站上提取公开可用的数据。由于使用 Reddit 官方 API 时必然会遇到限制,因此你需要使用 Reddit 搜刮工具。但是,如果你使用不使用 Reddit API 的网络搜刮工具从 Reddit 提取数据,就会违反 Reddit 的使用条款。但这并不意味着网络搜刮是非法的。
要想无障碍地进行搜索,你必须避开 Reddit 设置的反搜索系统。Reddit 最常用的反搜索技术包括
您可以借助代理和 IP 轮换来解决 IP 跟踪问题。另一方面,您可以使用 Captcha 解决方案(如 2Captcha)来解决验证码问题。
如何使用 Python 搜刮 Reddit
搜索 Reddit 有五种方法:
- 手动抓取 - 这是最简单但在速度和成本方面效率最低的方法。不过,它产生的数据一致性很高。
- 使用 Reddit API - 使用 Reddit API 搜刮 Reddit 数据需要基本的编码技能。它能提供数据,但限制 Reddit 主题中的帖子数量为 1000 个。
- 糖衣第三方应用程序接口 - 这是一种有效且可扩展的方法,但成本效益不高。
- 网络抓取工具 - 这些工具具有可扩展性,只需掌握使用鼠标的基本技能。
- 自定义抓取脚本 - 它们具有高度的可定制性和可扩展性,但需要较高的编程能力。
让我们看看如何在以下步骤的帮助下使用 Reddit API 搜刮 Reddit。
创建 Reddit API 账户
在继续前行之前,您需要创建一个 Reddit 账户。要使用 PRAW,您必须通过
此链接注册 Reddit API。
导入软件包和模块
首先,我们将导入 Pandas 内置模块(例如,datetime)以及两个第三方模块(PRAW 和 Pandas),如下所示:
获取 Reddit 和 subreddit 实例
你可以使用 Praw(Python Reddit API Wrapper 的缩写)访问 Reddit 数据。首先,你需要调用 praw.Reddit 函数连接 Reddit,并将其存储在一个变量中。然后,你必须向函数传递以下参数。
现在,你可以获取你所选择的 subreddit。因此,从 reddit(变量)中调用 .subreddit 实例,并传入你想访问的 subreddit 的名称。例如,你可以使用r/Nootropics子红人区。
访问主题
每个子红人区都有以下五种不同的方式来组织 Redditor 创建的主题:
您可以抓取获得最高票数的主题:
您将获得一个列表式对象,其中包含 r/Nootropics 中提交次数最多的 100 篇文章。不过,Reddit 的请求限制是 1000,因此您可以通过向 .top 传递限制来控制样本大小:
解析和下载数据
您可以搜刮任何您想要的数据。不过,我们将抓取以下有关主题的信息:
我们将在字典中存储数据,然后使用 for 循环,如下图所示。
现在,我们可以从 Reddit API 抓取数据。我们将通过遍历 top_subreddit 对象将信息添加到字典中。
现在,我们将数据放入 Pandas 数据框中,因为 Python 字典不容易读取。
导出 CSV
在 Pandas 中创建各种格式的数据文件非常容易,因此我们使用以下代码行将数据导出为 CSV 文件。
2021 年最佳 Reddit 代理
Reddit 对代理的使用限制并不严格。但是,如果你在不使用代理的情况下在 Reddit 上自动进行操作,就有可能被发现并受到惩罚。
因此,让我们来看看 Reddit 的一些最佳代理,它们可分为两类:
住宅代理 -这是互联网服务提供商(ISP)分配给特定物理位置设备的 IP 地址。这些代理会显示用户用来登录网站的设备的实际位置。
数据中心代理 - 这些 IP 地址并非来自任何互联网服务提供商。我们从云服务提供商处获取这些地址。
以下是一些适用于 Reddit 的顶级住宅和数据中心代理。
智能代理
Smartproxy是顶级的高级住宅代理服务提供商之一,因为它对 Reddit 自动化非常有效。它拥有广泛的 IP 池,一旦您订购了它的服务,就可以访问所有 IP。
Stormproxy
Stormproxies的定价和无限带宽使其成为一个不错的选择。它们价格合理,使用成本低廉。他们的代理服务器适用于各种使用情况,并为 Reddit 自动化提供最佳的住宅代理服务器。
ProxyScrape
ProxyScrape是最受欢迎的代理服务提供商之一,专注于提供搜索代理服务。它还提供专用数据中心代理服务器和共享数据中心代理服务器。它有超过 40k 个数据中心代理,您可以用它们从互联网网站上搜刮数据。
ProxyScrape 为用户提供三类服务,即
高参数
- 共享代理
- 私人代理
- 分类网站代理
- 票务代理
- 媒体代理
即时代理
您还可以使用
Instantproxies实现 Reddit 自动化,因为它们非常安全、可靠、快速,正常运行时间约为 99.9%。它们是所有数据中心代理中最便宜的。
为什么使用 Reddit 代理?
在 Reddit 上使用一些自动工具时,你需要使用代理。因为 Reddit 是一个非常敏感的网站,它很容易检测到自动操作,并阻止你的 IP 访问该平台。 因此,如果你要自动执行一些任务,如投票、发帖、加入/退出群组以及管理多个账户,你肯定需要使用代理来避免不良后果。
Scrape Reddit 的替代解决方案
如果您的 Reddit 搜索需求较小,您可以选择手动搜索。但如果需求量大,你就必须利用自动搜索方法,如网络搜索工具和自定义脚本。事实证明,当你每天的搜刮需求在几百万个帖子以内时,网络搜刮工具既节省成本,又节省资源。
因此,让我们来看看一些最好的 Reddit 搜刮工具,它们是搜刮大量 Reddit 数据的最佳解决方案。
Scrapestrom
Scrapestorm是市场上最好的搜刮工具之一,因为它在搜刮 Reddit 时非常有效。它利用人工智能自动识别网页上的关键数据点。
Apify 的 Reddit 搜索器
Apify 的 Reddit scraper可让您轻松提取数据,而无需使用 Reddit API。这意味着您无需开发人员 API 令牌和 Reddit 授权,即可下载数据用于商业用途。您还可以使用 Apify 平台的集成代理服务来优化您的搜刮。
结论
我们讨论了五种刮取 Reddit 数据的方法,其中最简单的是使用 Reddit API,因为它只需要基本的编码技能。PRAW 是 Reddit API 的 Python 封装器,能让你在简洁的 Python 界面上使用 Reddit API。但是,当你有大量 Reddit 搜刮需求时,你可以借助 Reddit 搜刮工具从 Reddit 网站上提取公开可用的数据。要自动执行 Reddit 网站上的操作,你需要使用
数据中心或
住宅代理。