ipproxy123.com

进行Web爬网的初学者指南


Web抓取所需的清单,使用Python和软件进行抓取时可能需要的清单以及不需要的清单。

对于任何从特定网站上查找大量数据的人来说,Web抓取是一条捷径。“ Web抓取”一词包含对“搜寻器”的使用,该“搜寻器”可以在网页中浏览网页,甚至可以浏览网页中的子页面和子页面。“蜘蛛”(会在网络所有者认为合法的范围内提取数据)和“刮板”(可能是指使机器为您收集和存储数据的全部功能)。

对于数据,我们并不是指一个或两个html文件:刮板可以在短时间内提取数百万个数据点。更好的是,可以指示它们专门提取要寻找的数据类型。

在许多情况下,这就是建立如此庞大的数据集的方式:没有人能以机器能获得的速度和效率的一小部分来收集数据。这就是本质,当人们谈论Web抓取时,数据抓取就是什么。


但是首先,要知道,从任何一台个人计算机上,数据抓取功能都受到严格的限制。在工业级别上抓取数据所需的计算能力需要服务器和数据中心。这也是下面列出的许多服务都有定价选项的原因。如果没有,则障碍来自机器人协议,

因此,在开始剪贴之前,请首先认真考虑“ Web剪贴协议”!

网页搜集协议

无论您使用什么工具进行Web抓取,都会有一些惯用的协议网站。不遵守这些协议可能会产生一些不同的负面结果。

如果站点足够小,则大量抓取可能会影响其服务器,因为服务器攻击可能会受到法律影响。中型或大型网站将较不容易受到此影响,但还会有其他后果。

API

如果网站具有API,则鼓励使用该API。但是抓取更多是关于从网页提取原始数据,因此使用API​​从技术上讲是使用完全不同的方法来收集数据。

无论如何,刮刮,刮刮的频率以及刮刮的大小都有限制。当您了解数据抓取时,您可能会熟悉术语“工作者”或“蜘蛛”(稍后定义)。这些将需要遵循这些准则,但是在哪里可以找到这些准则?

/robots.txt。

只要在单个域下的网页网络上存在信息,较大的网站通常就会有一个登陆页面,其中包含有关网页抓取工具在其网站上可以做什么和不能做什么的说明。该信息通常可以在首页的URL下找到,后跟“ /robots.txt”。

例如,以比同行拥有更多限制而闻名的社交媒体网络Facebook,在facebook.com/robots.txt上标记了所有被禁止的动作。以下是他们不允许您抓取的某些内容的摘要,直接摘自他们自己的“ robots.txt”子页面。这也是检查网站是否包含站点地图的好地方。有的有,有的没有,但如果有的话,刮板的工作就容易得多了。

脸书机器人

请注意,这并不意味着不可能从该特定网站(或从任何网站上)抓取此类数据。这仅意味着管理员以多种方式使其更加困难:更容易获得IP禁止,更难使用简单,流行的Web抓取工具以及其他障碍。当然,通过某些编程技巧可以始终在某种程度上规避这些问题。

IP轮换

您的IP地址可能由于不承认网站制定的规则而很快被禁止。为避免这种情况,我建议您使用旋转代理进行网络抓取,现在有许多住宅代理服务为刮取和网络爬网提供IP旋转,您可以通过这些旋转代理提供者轻松设置IP旋转,让我将 Smartproxy 用作例如,这是一个简单的IP旋转代码,使用python作为初学者的示例,

在此示例中,从随机IP进​​行对example.com的查询。
导入urllib.request
随机导入
用户名=“ USERNAME”
密码=“密码”
条目=('http:// customer-%s:%s@gate.smartproxy.com :7000'%
(用户名密码))
查询= urllib.request.ProxyHandler({
“ http”:条目,
'https':条目,
})
执行= urllib.request.build_opener(查询)
打印(execute.open('https://ipinfo.io').read())



此外,Luminati.io这样的高级代理提供者 ,不仅提供易于使用的API,而且还提供高级的Luminati代理管理器(LPM)来处理Web爬网程序和数据提取的IP轮换。

Luminati用于网页抓取

毫无疑问,如果有足够的预算,  Luminati将为刮网提供最佳的住宅IP旋转解决方案

luminati Pythno API


在线抓取主要有两种方法,一种是使用Python进行Web抓取,另一种是使用已开发的Web抓取工具,下面让我详细介绍一下。

返回菜单↑

使用Python的Web抓取工具包和Essentials

我想,无论如何,下面的前两个包都已合并到Python中大多数Web抓取工作中。它们无缝地协同工作,并且都为Web抓取提供了宝贵的任务。

美丽的汤

Beautiful Soup可以通过pip或conda以“ bs4”的形式安装,是用于数据抓取的宝贵软件包。它之所以有用,是因为可以很容易地使用它来处理抓取的数据,从典型的网页中提取需要的内容,而忽略不需要的内容。

随着工作人员从par爬到par提取数据的过程中,他们需要有关下载内容的说明。如果没有说明,他们将下载整个程序,这太低效,笨拙且嘈杂,以至于无法实用。

因此,Beautiful Soup告诉抓取工具要从网页中提取哪些特定数据点-例如,表中一列的单元格中的条目。

对于那些有Python经验的人,还有其他更好的教程,他们愿意根据自己的喜好使用Beautiful Soup编写自己的脚本。(插入超链接)。但是,对于在HTML / CSS / JS网页上进行的常见提取,也有许多公共可用的脚本。

要求

如果您已经在使用Python,则很可能已经安装了“请求”。如果不是,请立即执行此操作,因为它的作用非常明显,甚至超出了本主题的范围。简而言之,请求允许您以多种有用和灵活的方式与网页进行交互。

请求可以与网页进行交互,可以爬网某个网页的整个站点地图,甚至可以在出现提示时登录,因为Beautiful Soup会提取必要的数据。这是该脚本的Internet导览:将其带到需要的地方,授予它自己无法访问的地方的访问权,并根据需要移动到各处,并始终在站点和站点地图上提供信息。

该包裹就像是具有数据抓取功能的Beautiful Soup。简而言之,就像Beautiful Soup一样,它将刮板定向到所需的数据。它声名fa起是它可以自动浏览XPath和其他常见的隐藏数据的CSS容器。

美丽的汤也可以做到这一点,但是,对于美丽的汤,必须编写脚本,以便美丽的汤知道在哪里可以找到Xpath中隐藏的数据。

您只需要在网页上的Xpath中找到一个数据示例,但是它需要右键单击该页面,单击“检查元素”,然后遍历div才能找到该数据示例的隐藏位置。这是我写的一个脚本示例,实际上我确实必须使用Selenium(稍后讨论):

我使用汤的样本-通过xpath查找元素

该“ td”是数据隐藏在Xpath“ tr”下的位置。一旦我发现了,汤就剩下了。

但是,根据其文档的这一部分,Parcel可以跳过首先查找该元素的步骤,因为它可以单独执行此操作。看起来确实是这样的情况是,该包装比“美丽汤”体积更大,并且可能会导致速度变慢,但它提供了许多更多功能。

尽管“美丽汤”也相当简单,但对初学者可能会更好。尝试两者,看看哪一个适合您。但对于初学者来说,这是一个使用请求和包裹的公开的爬虫演示。

更妙的是,这是一个站点,其中包含许多使用和解释Parcel的脚本链接。由于美丽汤已经存在了很长时间,因此没有现成的已分配脚本,可以在这里找到。

JSON格式

JSON作为Python程序包很可能是保存受惊吓的数据的最有效方法。无处不在的“ pandas”包提供了相同的功能,在此也应提及。使用内置的“ re”包,脚本将需要将抓取的数据写入文件,并将该文件保存在计算机上的某个位置。

Selenium笨拙且效率低下,但如果以前面提到的程序无法理解的方式编写网页,则可以起到重要作用。硒不是任何一种刮板,但可用于将刮板导航到需要紧迫的地方。Selenium是浓缩为Python软件包的Web浏览器。

它需要一个驱动程序,通常是ChromeDriver,它将是它将使用的Google Chrome浏览器。这意味着,当您使用selenium运行脚本时,您选择的浏览器会自动打开,并且可以单击页面的某些部分,将击键以某些形式输入,等等。

观看它非常酷,但是对于Web抓取,其主要目的是将Web抓取器导航到网页中所需数据所在的特定区域。由于上述软件包可以处理大多数网页,因此这是一种“如果不成功”的机制。

相关: 为什么需要硒的代理?

cra草

这些工具中的许多工具的问题在于它们可能很麻烦。使用Scrapy,需要Visual Studio 14.0,您可以通过下载Visual Studio构建工具来获得。诸如此类的扩展要求增加了遇到困难的几率。

编程环境的细节,每个软件包以及正在使用的任何计算机或服务器都可能影响兼容性。但是请注意,Mac和Linux可以通过PyPi下载Scrapy没有问题。如果您不熟悉此过程,那么终端应该是这样的:

安装Scrapy

可以在Github,Stackoverflow和公共资源上找到利用Scrapy内置的爬网和数据整理工具的脚本。实际上,它们中的许多,可能不像从终端中直接运行它们那样简单。因此,对于非程序员或中断的程序员,该软件可以派上用场,

相关: 安装Python进行Reddit抓取

返回菜单↑

使用Web Scraping软件工具刮取数据

有几种不同类型的Web抓取软件工具可以满足特定需求。一些只需要一点编程知识,而另一些则完全不需要。

一些将比其他具有更大的功能(例如,抓取多媒体,即PDF,图像,音频和视频文件)。让我们看一下一些更流行的工具。

橙色-免费开源网页抓取工具

橙色,免费数据挖掘网站上发现

它的主菜单是路线图的可视化,您将在其中构建和实施整个过程。这是我做过的一个数据挖掘项目的工作流示例,目的只是说明软件的组织能力。

数据挖掘项目的工作流程

使用Orange抓取数据有一些好处。首先,数据的存储,处理和保存变得异常简单。简短且内容丰富的试验已公开发布,并附有有关操作方法的说明。该软件必须遵守第三方的条款,这对于网络抓取是一个负担。

例如,使用抓取Twitter时,您将需要一个API密钥-了解如何在此处获取密钥(任何人都可以得到一个),但是使用API​​限制了在一定时间内可以抓取的数据量。另一方面,Orange的优势在于,Orange允许用户在工作流程中实现他们想要的任何脚本,因此上述所有内容都可以并入Orange。

在软件中,您会找到下载扩展程序的选项,包括数据抓取扩展程序。完成此操作后,抓取就变得与将小部件添加到工作流程一样简单。

Octoparse:免费增值网络抓取程序

Octoparse是一个几乎免费的Web抓取程序,可用于每个主要OS。由于它向有能力的行业提供高级软件包,因此该软件在其功能上非常出色。

与其他免费的非常有限的抓取能力免费软件不同,Octoparse为免费用户提供了一个慷慨的软件包:每个爬网无限制页面,一次只能抓取10个抓取器,每次导出可以记录10,000条记录。

记录的数量是免费计划的成败限制:根据项目的不同,10,000个条目可能绰绰有余,或者远远不够。

无论如何,它和上面列出的Python包一样有效,甚至更有效。他们的产品概述并不夸张其功能。请注意限制。

付费网页抓取工具

有很容易找到的网页抓取软件,但是花钱买起来并不容易。这些程序适用于企业。单个项目的定价过高,但是您确实得到了所要支付的费用,例如,

所有人都得到好评如潮,但都花了不少钱。由于我没有与他们合作的经验,因此我不会介绍它们,但是选择权是您的。只知道他们在那里。

当心:100%免费的Web抓取软件几乎从未像承诺的那样做!

最专业,最简单,最胜任的Web抓取方法是不要使用带有服务器或具有高计算能力的GPU的机器使用手动编程的脚本。那里有数百种数据抓取程序,只需在Sourceforge上快速查找一下即可:

数据抓取Sourceforge

如果像这样的野兽功能这样的描述程序似乎不切实际,那么它们很可能是不切实际的。始终检查是否有健康,最新和最近的更新,这些评论是否支持开发人员所说的软件可以执行的操作,以及每周是否有健康的下载量。这些未通过此类标准的程序可能并非恶意软件,但它们可能只是垃圾。


因此,粗略地说,有两种关于刮网的方法。编程,脚本编写路线,提供了更多的自由,更多的个性化和更多的自定义功能。然后是软件路线,它们提供易用性和额外的计算能力。

任一种选择的可行性取决于一个人希望做的编程数量与一个人愿意做的自付费用的数量。正如讨论的那样,实际上有效的Web抓取软件不可避免地会遇到这种情况。

« »
Copyright © 2019 All Rights Reserved.