微信
扫一扫联系我
7/24 网络工程师和销售人员随时为您服务。
随着数字经济的持续指数级增长 ,从API、网站和数据库等各种来源收集数据 比以往任何时候都更加重要。
提取数据的一种常见方法是通过 网页抓取。网页抓取涉及使用自动化工具获取网页并解析其内容以提取特定信息以供进一步分析和使用。常见用例包括市场研究、价格监控和数据聚合。
实施网络抓取涉及处理动态内容、管理会话和 Cookie、处理反抓取措施以及确保法律合规性。这些挑战需要先进的工具和技术来有效提取数据。ChatGPT 可以 利用其自然语言处理功能来生成代码和排除错误,从而帮助解决这些复杂性。
在本文中,您将学习如何使用 ChatGPT 为主要依赖静态 HTML 内容的网站以及采用更复杂的页面生成技术的复杂网站生成抓取代码。
在开始本教程之前,请确保您已具备以下条件:
熟悉 Python
使用 Visual Studio Code在你的计算机上安装并配置 Python 环境
ChatGPT 帐户
当您使用 ChatGPT 生成网页抓取脚本时,主要有两个步骤:
记录代码需要遵循的每个步骤以查找要抓取的信息,例如要定位的 HTML 元素、要填充的文本框以及要单击的按钮。通常,您需要复制特定的 HTML 元素选择器。为此,右键单击要抓取的特定页面元素,然后单击 检查;Chrome 会突出显示特定的 DOM 元素。右键单击它并选择 复制 > 复制选择器 ,以便将 HTML 选择器路径复制到剪贴板:
制作具体、详细的 ChatGPT 提示来生成抓取代码。
执行并测试生成的代码。
现在您已经熟悉了一般的工作流程,让我们使用 ChatGPT 来抓取一些包含 静态 HTML 元素的网站。首先,您将从 https://books.toscrape.com抓取图书标题和价格。
首先,您需要确定包含所需数据的 HTML 元素:
这本书的书名选择器 是 #default > div.container-fluid.page > div > div > div > section > div:nth-child(2) > ol > li:nth-child(1) > article > h3 > a。
书价的选择器是 * #default > div.container-fluid.page > div > div > div > section > div:nth-child(2) > ol > li:nth-child(1) > article > div.product_price > p.price_color。
接下来,您需要编写具体且详细的 ChatGPT 提示来生成抓取代码。为此,您需要告诉 ChatGPT 安装任何所需的 Python 包,引导它提取 HTML 选择器(您之前已确定),然后要求它将数据保存为 Excel 文件。
不要忘记将 ChatGPT 版本设置为 GPT-4o。
您可以在 ChatGPT 中输入类似这样的内容:
您是使用Python 的 Beautiful Soup库和任何必要的自动化工具进行网络抓取的专家 。我希望您生成一个详细的分步脚本来抓取
https://books.toscrape.com;请执行以下操作:
安装任何必要的 Python 包。
提取书名(带有HTML选择器
#default > div.container-fluid.page > div > div > div > section > div:nth-child(2) > ol > li:nth-child(1) > article > h3 > a)和书价(只有数字,没有其他内容)(带有选择器)#default > div.container-fluid.page > div > div > div > section > div:nth-child(2) > ol > li:nth-child(1) > article > div.product_price > p.price_color。提取所有书名和价格的列表并将其存储在 Excel 文件中。
仅抓取第一页。
请注意: 您可能会收到略有不同的答复。
在响应中,ChatGPT 指示您运行以下命令来安装执行网页抓取的 Beautiful Soup 库和 将数据存储为 Excel 的综合数据分析库pandas 库:pip3 install requests beautifulsoup4 pandas openpyxl
抓取复杂网站可能具有挑战性,因为动态内容通常通过 JavaScript 加载,而 JavaScript 等工具 requests 无法 BeautifulSoup 处理这些内容。这些网站可能需要单击按钮或滚动鼠标等交互才能访问所有数据。为了应对这一挑战,您可以使用 WebDriver,它可以像浏览器一样呈现页面并模拟用户交互,确保所有内容都可以像普通用户一样访问。
例如, Yelp 是一个面向企业的众包评论网站。Yelp 依赖于动态页面生成,需要模拟多个用户交互。在这里,您将使用 ChatGPT 生成一个抓取代码,该代码可检索斯德哥尔摩的企业列表及其评分。
要抓取 Yelp,我们首先记录一下要遵循的步骤:
找到脚本将使用的位置文本框的选择器;在本例中为 #search_location。在位置搜索框中输入“斯德哥尔摩”,然后找到搜索按钮选择器;在本例中为 #header_find_form > div.y-css-1iy1dwt > button。点击搜索按钮查看搜索结果。这可能需要几秒钟。找到包含企业名称的选择器(即 #main-content > ul > li:nth-child(3) > div.container_\_09f24_\_FeTO6.hoverable_\_09f24_\__UXLO.y-css-way87j > div > div.y-css-cxcdjj > div:nth-child(1) > div.y-css-1iy1dwt > div:nth-child(1) > div > div > h3 > a):
#main-content > ul > li:nth-child(3) > div.container_\_09f24_\_FeTO6.hoverable_\_09f24_\__UXLO.y-css-way87j > div > div.y-css-cxcdjj > div:nth-child(1) > div.y-css-1iy1dwt > div:nth-child(2) > div > div > div > div.y-css-ohs7lg > span.y-css-jf9frv):
#main-content > div.stickyFilterOnSmallScreen_\_09f24_\_UWWJ3.hideFilterOnLargeScreen_\_09f24_\_ilqIP.y-css-9ze9ku > div > div > div > div > div > span > button:nth-child(3) > span:

接下来,使用之前提取的选择器值,你需要起草一个详细的提示来指导 ChatGPT 生成抓取脚本:
您是网页抓取专家。我希望您抓取 https://www.yelp.com/ 以提取特定信息。抓取前请遵循以下步骤:
- 使用选择器清除该框
#search_location。- 使用选择器在搜索框中输入“斯德哥尔摩”
#search_location。- 单击带有选择器的按钮
#header_find_form > div.y-css-1iy1dwt > button。- 考虑页面加载搜索结果需要几秒钟的时间。
- 点击带有选择器的“ 立即开业”按钮 ,
#main-content > div.stickyFilterOnSmallScreen_\_09f24_\_UWWJ3.hideFilterOnLargeScreen_\_09f24_\_ilqIP.y-css-9ze9ku > div > div > div > div > div > span > button:nth-child(3) > span可以筛选现在开业的企业。- 创建一个包含企业名称的列表;企业名称具有选择器
#main-content > ul > li:nth-child(3) > div.container_\_09f24_\_FeTO6.hoverable_\_09f24_\__UXLO.y-css-way87j > div > div.y-css-cxcdjj > div:nth-child(1) > div.y-css-1iy1dwt > div:nth-child(1) > div > div > h3 > a。- 创建一个包含业务评论的列表;评论有选择器
#main-content > ul > li:nth-child(3) > div.container_\_09f24_\_FeTO6.hoverable_\_09f24_\__UXLO.y-css-way87j > div > div.y-css-cxcdjj > div:nth-child(1) > div.y-css-1iy1dwt > div:nth-child(2) > div > div > div > div.y-css-ohs7lg > span.y-css-jf9frv。- 创建一个包含公司名称及其评论的 Excel 文件。
- 确保安装所有相关的 Python 包。
- 使用 Selenium 中的 WebDriver 来自动化该过程。
- 请参阅附件的结果 HTML 页面副本,以了解有关 HTML 格式的背景信息。
输入这些信息后,ChatGPT 会提示你安装支持 WebDriver 和 pandas 的 Web 自动化框架 Selenium:
ChatGPT 还为您提供了一些抓取代码以及解释:
保存此脚本并使用 Visual Studio Code 中的 Python 运行它。您会注意到,代码启动 Chrome、导航到 Yelp、清除位置文本框、输入“斯德哥尔摩”、单击搜索按钮、过滤当前营业的商家,然后关闭页面。之后,抓取结果将保存到 Excel 文件中 stockholm_bussinsess.xlsx:
本教程的所有源代码均可在 GitHub上找到。
在本教程中,您学习了如何使用 ChatGPT 从具有静态 HTML 渲染的网站以及具有动态页面生成、外部 JavaScript 链接和用户交互的更复杂的网站中提取特定信息。
虽然抓取 Yelp 这样的网站很简单,但实际上,抓取复杂的 HTML 结构的网站可能很有挑战性,而且您可能会遇到 IP 禁令和 CAPTCHA。
为了简化操作, Bright Data 提供各种数据收集服务,包括帮助绕过 IP 禁令的高级代理服务、用于绕过和解决 CAPTCHA 的 Web Unlocker、用于自动数据提取的Web Scraping API以及 用于高效数据提取的Scraping Browser 。
立即注册并了解 Bright Data 提供的所有产品。立即开始免费试用!
尽管有些混淆,但这两个流程和应用程序之间存在明显差异。在这篇文章中,我们将分解这两个流程及其工作原理;并讨论具体用例。
网页抓取
使用 HTML 标识符,网页抓取可用于从网页中提取数据。当抓取器获得目标后,它将收集存储在这些目标标识符内的所有数据,以便稍后进行解析和分析。网页抓取并非易事。它可用于各种场合,从小型个人项目到工业用途。例如,以两个采用动态定价的电子商务网站为例。虽然两者都采用定价策略,但它们可能会频繁抓取竞争对手的网站以了解其定价;从而使它们能够根据实时定价提供有竞争力的定价机会。这可以视为一场“定价棋”游戏,一方的举动会严重影响另一方。
为了阻止这种情况,站点 2 可能会采用反机器人措施,通过限制访问和阻止来自 IP 地址的过多后续请求来防止抓取工具成功收集数据。为了规避这种情况,站点 1 将部署代理来轮换 IP 地址并继续不受限制地抓取数据。站点也可能进行地理限制,因此通过使用类似于主机区域的地理定位代理,竞争对手可以确保他们可以从世界任何地方收集数据。这在公司位于不同时区的情况下特别有用。竞争优势不仅在于能够抓取数据;还在于高效且合乎道德地进行抓取。负责任地使用代理可确保抓取活动不会因滥用请求而破坏目标网站,并保持在使用抓取的道德考虑范围内。在这种情况下,我们强烈建议您查看这篇文章,了解一些网络抓取的最佳实践以及如何成为一名有竞争力但有道德的网络公民。
网页爬取
尽管有些相似,因为这个过程也从网页收集信息,但网络爬虫有一个关键区别。爬虫用于自动索引网站内容,以了解网页包含哪些信息。如果一个网站要在搜索引擎上显示良好,就必须对其进行索引。如果没有索引(包括定期更新),搜索引擎将不太可能或无法找到该网站上的信息并将其显示给可能回答查询的用户。对网站进行爬虫和索引可以为搜索引擎创建所需的条目。
但是,网站可以拒绝抓取。使用 robot.txt 文件等工具,网站可以请求拒绝抓取和索引,或者仅允许部分索引。这可能出于多种原因。以服务器负载为例,网站可以请求拒绝抓取和索引以减少来自机器人的流量,从而降低服务器负载。负载过高会对真实用户的体验产生负面影响。反 DDOS(分布式拒绝服务)也可能出现这种情况,同样希望通过减少负载来减轻此类攻击。
虽然这两个过程听起来很相似(就连接、收集和存储而言),但抓取本身是一个完全不同的过程。抓取工具不会获得目标 HTML 属性,而是获得一个“种子”。这是开始抓取的 URL 列表。然后,抓取工具将对页面进行分类,并仔细注意上面提到的 robots.txt 文件。抓取工具可以根据它识别和跟踪的内部链接从种子导航到其他页面。在操作过程中,它会复制并存储元标记内的数据。本质上,元标记提供了有关网站的结构化元数据。重要的是要注意优化这些标记本身的重要性,在这种情况下,我们建议您在此处阅读更多相关信息以及它在 SEO 管理中的重要性。从元标记中获取的抓取工具存储的数据用于索引页面,以便搜索引擎扫描关键字。
索引页面和存储的关键字(以及一些特定于引擎的算法)决定了搜索引擎查询时是否返回页面。搜索引擎将返回索引页面列表,并根据其认为最重要的内容进行排名。
总之,虽然网络抓取和网络爬行可能被错误地认为是可以互换的,但这篇文章阐明了它们的明显差异、功能和应用。
到目前为止,我们已经介绍了住宅代理、ISP 和 DC。在本指南中,我们将深入探讨另一种代理:移动代理。
什么是移动代理?
与住宅代理非常相似,移动代理是用户和目标之间的中介,使用仅来自移动设备或平板电脑的 IP。移动代理由真实的 4G/5G 连接组成,分配给移动设备、SIM 卡和移动运营商。由于这些代理的性质,它们极难检测,因为 IP 是从真实的移动设备分配的。与传统代理服务器(如住宅或 ISP)相比,移动代理服务器的工作方式截然不同。移动代理服务器不依赖于预定的 IP 地址列表(在某些情况下这些地址可能众所周知且容易被列入黑名单/阻止),而是利用来自其他用户动态数据库的 IP 地址来模拟移动设备的行为。这会产生一个非常“干净”且广泛的池,可用于各种用例,同时避免被检测和阻止,而其他类型的代理也可能成为受害者。移动代理还利用GPRS网络地址转换(GCNAT),进一步优化网络并增强安全性。
分解移动代理
移动代理非常适合创建和管理帐户等用例,使用多样化的高质量池并充分利用移动代理的高度轮换性。这允许创建或管理多个帐户,避免来自单个 IP 的请求限制和阻止。关于这个问题,我们可以感谢新近大规模采用的“运营商级 NAT”,因为它增强了禁令和检测规避能力。CGNAT 是一种协议,用于通过故意设置的公共 IP 瓶颈共享大量流量,通过单个唯一 IP 地址路由多个用户,然后使用 NAT 解密并将流量发送到其假定位置(通过分配唯一端口号)。唯一端口方法使任何检测方法都更加复杂。这在某种程度上使得移动代理几乎不可能被检测、限制和禁止。禁令或限制可能会导致大量用户受到影响;使传统的全面 IP 禁令变得有些无效。除了增加的检测逃避之外,移动代理还利用同样的功能来增强安全性,再次使得定位源 IP 变得非常困难。
进一步展望
移动代理本身的用途扩展到某些特定的基于移动的任务(模拟移动用户会大有裨益)。例如,移动应用测试。测试是应用程序开发的关键部分,利用移动代理模拟移动用户行为。这使开发人员能够体验潜在用户的 POV 并收集数据以进行研究和修复错误。另一个重要的用例,正如本文前面提到的,是社交媒体市场。移动代理再次允许用户模仿真实的移动用户和平台上的活动。这反过来又使他们能够在管理多个帐户的同时避免被社交媒体算法检测到。移动代理通常提供来自不同地理位置的不同 IP 地址。这对于需要特定区域数据的企业(例如特定位置的广告、内容定制或市场分析)非常有利。
与住宅或 ISP 代理相比,移动代理的最大缺点是成本。由于基础设施的成本和复杂性以及对移动代理的高质量代理的需求,这导致其成本与其他产品相比较高。这一点很重要,因为成本考虑在决定哪种代理最适合特定用例时起着关键作用。
总之,移动代理的多功能性在帐户创建和管理、移动应用测试和社交媒体参与等任务中得到了充分体现。它们能够从不同位置提供多样化且安全的 IP 地址,这对于企业的特定需求来说非常有价值。尽管有明显的好处,但成本的急剧增加可能会成为各种规模运营的限制因素。
简介:这是一个经常被问到的问题,今天我们将介绍两种非常常见的代理协议之间的区别。我们将了解它们是什么、它们如何运作,以及它们适合的场景。请注意,我们所有的代理都是HTTP。
了解 SOCKS 代理:“Socket Secure”(简称 SOCKS)是一种高级网络协议,它不仅可以在传输过程中保护数据,而且还具有无与伦比的多功能性。SOCKS 代理以加密为基础,可确保客户端和代理服务器之间传输的数据不会被窥探。特别有用的是,SOCKS 代理支持 UDP(用户数据报协议)和 TCP(传输控制协议)连接。这使它们具有广泛用途所需的适应性。
SOCKS5 是该协议目前最新的版本,与 SOCKS4 相比,它提供了安全和身份验证功能更新。它引入了值得注意的安全增强功能和身份验证功能,提高了其提供的保护级别,优于其前身 SOCKS4。SOCKS 代理的一个主要示例是它们在点对点共享和无缝流式传输中的使用,其中协议的灵活性占主导地位。
有关 HTTP 代理的更多信息:“超文本传输协议”或 HTTP 可有效地充当屏障;在将请求和流量直接传递给用户之前对其进行评估。HTTP 代理通常用于匿名,通过将流量引导到代理服务器来隐藏用户的原始位置。HTTP 代理用于中继 HTTP(S) 流量。HTTP 代理经常用于绕过地理限制,并且可以在世界任何地方进行地理定位。
HTTP 代理最有用的方面之一是它们能够被定位到世界上几乎任何地方。这种地理灵活性扩大了它们在特定内容或服务受到区域限制的情况下的实用性。无论是流式传输区域锁定的内容还是访问仅在某些国家/地区可用的网站,HTTP 代理都提供了通往更广泛在线体验的门户。
因此,紧迫的问题仍然是:HTTP 还是 SOCKS?答案取决于您的独特需求和目标。如果保护数据完整性、实现 P2P 共享或无缝流式传输是您的首要要求,那么 SOCKS 代理(尤其是 SOCKS5)将成为冠军。另一方面,如果避免地理限制、保持匿名或访问特定区域的内容是您的首要任务,那么 HTTP 代理是您的最佳选择。
介绍
在代理服务器领域,有两个主要参与者占据主导地位:静态代理和轮换代理。这两种不同的代理类型在在线隐私、安全和数据抓取领域发挥着至关重要的作用。在本文中,我们将深入探讨轮换代理和静态代理,探索它们的定义以及它们带来的用例。
旋转代理:动态解决方案
TCP,数据传输三剑客:
在数据传输之前,需要在客户端和服务器之间建立连接。建立连接后,服务器必须持续监听客户端请求。TCP 是一种面向连接的协议,在整个数据传输过程中建立并保持发送方和接收方之间的连接。TCP 还利用超时和校验和以及确认作为其错误检查过程的一部分。如果发现错误或丢失的数据包,则重新启动整个传输过程。
传输控制协议通过三方“握手”保证数据传输。三方协议由同步段 (SYN)、同步确认 (SYN ACK) 和最后的确认段 (ACK RECIEVED) 组成。此过程非常彻底,可确保所有数据通过服务器从发送方传送到接收方。数据的保证至关重要,因为只要丢失一个数据包(例如一个代码字符)就可能导致整个网站无法读取。在数据传输过程中,如果数据包丢失,服务器将停止、重新启动并尝试重新传输以按预期完成传输。
然而,好处总是有弊端的,没有什么是完美的。协议的完整性意味着巨大的开销;消耗大量带宽。这可能会导致繁忙的网络拥塞,并导致传输时间大大延长。TCP 是文件传输、网页浏览和电子邮件的首选协议。
UDP,尽力而为:
与 TCP 类似,用户数据报协议也用于发送和接收数据。与 TCP 不同,UDP 是无连接的;这意味着在发送数据之前没有建立连接。UDP 不保证所有正在传输的数据,也不会返回来拾取任何遗漏的数据。此外,它不确保在发送结束时交付。这就是为什么 UDP 经常被称为“即发即弃”协议。
尽管 UDP 本身存在局限性,但它被广泛使用的主要因素之一是其快速性和效率。用户数据报协议 (UDP) 不需要建立预先存在的连接即可开始数据包传输。因此,它减少了通常用于激活服务器并将其置于“被动打开”状态以进行监听的时间。这可以更快地开始数据传输,而不会出现延迟或长时间等待。
由于消除了数据保证和发送数据的方法,TCP 产生的开销消除了,从而实现了更快的数据传输。如果客户端和接收方之间没有收到确认,数据可能会在传输过程中丢失。例如,UDP 无法控制网络拥塞,如果其路径之间的流量很大,则可能会丢失数据包。这使得它不适合网页浏览或电子邮件,而更适合流媒体或 VOIP。尽管 UDP 具有不可靠的特性,但它仍然是在线操作的基本组成部分。它在涉及实时数据传输的场景中大放异彩,偶尔丢失几个数据包无关紧要,通常不易察觉。
以玩在线游戏为例:当数据包丢失时,可能会导致跳过几帧。然而,尽管如此,用户数据报协议 (UDP) 仍会继续发送后续数据包,使用户能够继续玩游戏而不会受到太多干扰。用户甚至可能察觉不到这一点,而加载丢失数据包的电子邮件则可能导致其无法阅读。
结论
这些协议各有各的优势。TCP 稳定可靠,而 UDP 则注重效率。但关键在于:要充分利用这些协议,必须掌握 TCP 和 UDP 之间的关键区别。通过这样做,组织可以对其网络进行微调,使其达到完美状态。
了解亚amazon ebay walmart 等的政策:详细了解亚amazon ebay walmart 等的的买家账号使用政策,确保你的操作与其要求相符。这包括账号的注册、登录、评价、订单处理等方面。
创建真实有效的账号:使用真实的个人信息创建买家账号,包括姓名、地址、联系方式等。遵循亚马逊的规定并确保提供的信息准确可靠。
模拟地理位置:通过使用 Bright Data 的代理网络,你可以模拟不同地理位置的访问请求。这可以用于模拟账号的活动来使其看起来更加真实和多样化。
规避自动化检测:亚马逊使用自动化系统来监测账号的活动。避免过于频繁或不自然的操作,以免被系统检测出异常行为。
维护账号活跃度:定期登录账号并进行一些活动,如搜索商品、添加至购物车、下单等,以保持账号的活跃度和真实性。
遵守亚马逊的规则:确保你的操作符合amazon ebay walmart 等的规则和限制,不要进行违反规定的活动,以免账号被封禁或暂停。
定期检查账号状况:定期检查每个账号的状况,包括登录记录、活动情况和任何来自亚马逊的通知。如果发现异常或有任何警告信息,及时采取措施解决问题。
对于使用 Bright Data 进行精细的养号(维护和管理多个账号)的方法,以下是一些基本的步骤和注意事项:
规划代理使用:Bright Data 提供代理网络,你可以通过该网络模拟不同地理位置的请求。在养号过程中,你需要规划代理的使用方式,确保每个账号使用的代理具有不同的 IP 地址,以避免被网站识别为恶意行为或被封禁。
创建账号:根据你的需求,创建需要进行养号的账号。这可能涉及注册新的电子邮件账号、社交媒体账号、论坛账号等。确保使用真实有效的信息进行账号注册,遵守各个平台的政策和规定。
管理账号信息:使用 Bright Data 的代理网络,你可以模拟不同地区的访问,这对于维护多个账号时非常有用。确保为每个账号保存和管理相关的信息,如用户名、密码、安全问题答案等。可以使用密码管理工具来帮助组织和保护账号信息。
模拟账号活动:使用 Bright Data 的代理网络,模拟不同地理位置的活动以维护账号的正常性。这包括登录、发帖、互动等操作,使账号看起来像是由真实用户在不同地区使用。
遵守平台规则:在养号过程中,确保遵守每个平台的规则和限制。不要进行违反规定的活动,以免账号被封禁或暂停。
维护账号活跃度:保持账号的活跃度对于养号很重要。定期登录账号并进行一些活动,如发表评论、分享内容、参与讨论等。这样可以让账号看起来更真实,并减少被平台标记为不活跃或无用账号的风险。
监测账号状况:定期检查每个账号的状况,包括登录记录、活动情况和任何来自平台的通知。如果发现异常或有任何警告信息,及时采取措施解决问题,以确保账号的正常运行