来自同一个IP地址的许多连接请求可能会触发你所针对的网页。但好消息是,一些网站提供沙盒来练习网络爬虫。本文将向您展示最适合进行爬取的网站以及您可以学到哪些技能。
什么是网页爬取?
网络爬取是从互联网提取大量数据的自动化过程。因此,您的网络爬取工具不是手动复制所有信息,而是下载页面的 HTML 代码并对其进行解析(使数据结构化)。
选择您的网页爬取工具
网页爬取可以使用爬取库(Requests、BeautifulSoup、Cheerio)、Scrapy 和 Selenium 等框架、定制爬取工具(ScrapingBee API、Smartproxy 的 SERP API)或现成的爬取工具(ParseHub、Octoparse)来完成。Python 可能是最流行的数据收集编程语言;大多数网络爬取工具都是基于 python 的。
使用各种工具来覆盖旅程的不同部分。网络爬取框架是完整的爬取工具集,而独立库通常需要其他工具来完成您的爬取工具。另一方面,您甚至不需要了解现成的爬取工具的任何编程。
哪些网站允许网页爬取?
来自不同站点的数据可以让您了解有关不同产品的定价变化、新兴市场趋势、竞争对手活动等的有用见解。
然而,尽管网络爬取是合法的,但并非所有网页都允许类似机器人的活动,因为它们会给网络服务器带来负担。 您可以随时通过在 URL 后键入/robots.txt来检查网站是否允许此类活动。
不幸的是,大多数您想要爬取的网站对爬取工具都不太友好,并且会毫不留情地阻止您。这就是代理发挥作用的地方;他们可以帮助您绕过 IP 封锁。
为什么需要代理进行网页爬取?
当您的 IP 受到限制或阻止时,代理服务器会立即将其更改为新的 IP。它就像您和互联网之间的中间人,掩盖您自己的地址和位置。
假设您计划爬取您所在国家/地区不可用的内容。通过代理,您可以轻松访问受地理限制的网页,因为您的 IP 地址来自目标目的地。代理通常用于大量数据收集,您可以全天发出数千个连接请求。
练习网页爬取的最佳网站
1. Toscrape
Toscrape是一个网络爬取沙箱,非常适合初学者和高级爬取者。该网站分为两部分。第一个是一家虚构的书店,提供数千本书可供搜寻。第二个列出了名人的名言。它是尝试网络爬取工具的最受欢迎的网站之一。
Books.toscrape.com 允许您练习许多基本技能,例如提取数据 – 标题、库存可用性、价格和作者。它仅包含静态内容,因此您可以使用简单的库,例如 Requests 和 Beautiful Soup。
Quotes.toscrape.com 引入了具有高级挑战的多个端点。它可以教您登录、通过延迟加载和延迟渲染来爬取 JavaScript 生成的内容。简单的网络爬取库可能不足以完成任务,因此您需要尝试无头浏览器。
2. Scrapethissite
另一个用于学习网络爬取的优秀沙箱Scrapethissite与 Toscrape 非常相似。
如果您只是初学者,我建议您首先学习使用 Python 进行静态数据收集。您可以学习一些基础知识,例如爬取表格或标题。
对于更高级的数据检索,此站点也是学习如何基于 JavaScript 爬取动态生成的内容的好地方。当您开始爬取真实网站时,您可能会遇到问题。因此,请继续练习欺骗标头、处理登录和会话 cookie、传递 CSRF 令牌以及解决其他挑战。
3. Yahoo!Finance
Yahoo!Finance是在现实世界中开始练习网络爬取的完美场所。它是一个庞大的数据库,包含数百万条最新的财务记录,提供有关股票市场和公司的最新数据。
你可以掌握哪些技能?该网站的设计使爬取文本变得很容易,因为所有元素都位于表格和单独的页面上。所以,你绝对可以练习爬取表格和图表。
您可以提取股票和财务报表数据、价格变化,并进行一些数字运算。我建议将 Web 数据构建为 CSV 文件格式或 Excel 电子表格,以便用 Python 计算股票收益。
4. Wikipedia
维基百科非常适合练习以标准 HTML 形式提供的大量数据。您可以了解如何处理特定内容单元下的标识符和属性。或者,您可以通过爬取表格、图像和图表来磨练基础知识。
但是,如果您的爬取速度太快,您的访问可能会被阻止,因此请小心行事。
5. Reddit
如果您想访问论坛,我建议您访问Reddit。该网站遵循特定的 URL 格式,以便用户可以发布图像、视频、链接和类似内容。您可以提取任何评论或获得最多点赞的图像,识别 Reddit 子版块中最常出现的关键词,或者分析您感兴趣的新闻背后的公众情绪。
对论坛进行网络爬取可能会引导您产生成功的商业想法,同时您将练习一些基础知识,例如提取链接、图像、用户名和评论。
然而,Reddit 重新设计后,爬取就没那么简单了——网站有些棘手。这就是为什么我建议使用 old.reddit.com 上的旧布局。