抓取网页数据违法吗(网页搜寻的合法性使用Python(一).本章将解释与网页合法性)

优采云 发布时间: 2021-10-23 11:05

  抓取网页数据违法吗(网页搜寻的合法性使用Python(一).本章将解释与网页合法性)

  网络搜索的合法性

  使用Python,我们可以抓取网页的任何网站或特定元素,但你知道它是否合法吗?在抓取任何网站之前,我们必须了解网络抓取的合法性。本章将解释与网络爬行合法性相关的概念。

  介绍

  一般来说,如果您打算将捕获的数据用于个人用途,可能没有问题。但是,如果您想重新发布数据,您应该在执行相同操作之前向所有者发送下载请求,或者对您将要搜索的数据进行一些背景调查和策略。

  刮之前需要研究

  如果您的目标是从 网站 抓取数据,我们需要了解其规模和结构。以下是我们在开始网络抓取之前需要分析的一些文件。

  分析 robots.txt

  事实上,大多数发布者都在一定程度上允许程序员爬取他们的网站。换句话说,发布者希望抓取 网站 的特定部分。为了定义这个,网站必须制定一些规则来指定哪些部分可以爬行,哪些部分不能爬行。此类规则在名为 robots.txt 的文件中定义。

  robots.txt 是人类可读的文件,用于标识允许爬取网站 和不允许爬取网站 的部分内容。robots.txt 文件没有标准格式,网站 发布者可以根据需要修改。我们可以通过在 网站 的 URL 后面提供斜杠和 robots.txt 来检查特定 网站 的 robots.txt 文件。比如我们要检查,那么我们需要输入,我们会得到如下:

  User-agent: *

Disallow: /search

Allow: /search/about

Allow: /search/static

Allow: /search/howsearchworks

Disallow: /sdch

Disallow: /groups

Disallow: /index.html?

Disallow: /?

Allow: /?hl=

Disallow: /?hl=*&

Allow: /?hl=*&gws_rd=ssl$

and so on……..

  网站robots.txt 文件中定义的一些最常见的规则如下:

  User-agent: BadCrawler

Disallow: /

  上述规则意味着robots.txt文件要求爬虫使用BadCrawler用户代理不要爬取他们的网站。

  User-agent: *

Crawl-delay: 5

Disallow: /trap

  上述规则表明,robots.txt 文件会在所有用户的下载请求之间延迟爬虫 5 秒。代理用于避免服务器过载。/trap 链接将尝试阻止不允许链接的恶意爬虫。网站 发布 人们可以根据自己的需求定义更多规则。其中一些在这里讨论:

  分析站点地图文件

  如果你想爬取网站 获取更新的信息,你应该怎么做?您将抓取每个网页以获取更新的信息,但这会增加该特定 网站 的服务器流量。这就是 网站 提供站点地图文件以帮助爬虫查找更新内容的原因。无需抓取每个网页。网站地图标准定义在。

  站点地图文件的内容

  发现了以下情况:

  Sitemap: https://www.microsoft.com/en-us/explore/msft_sitemap_index.xml

Sitemap: https://www.microsoft.com/learning/sitemap.xml

Sitemap: https://www.microsoft.com/en-us/licensing/sitemap.xml

Sitemap: https://www.microsoft.com/en-us/legal/sitemap.xml

Sitemap: https://www.microsoft.com/filedata/sitemaps/RW5xN8

Sitemap: https://www.microsoft.com/store/collections.xml

Sitemap: https://www.microsoft.com/store/productdetailpages.index.xml

Sitemap: https://www.microsoft.com/en-us/store/locations/store-locationssitemap.xml

  以上内容显示,站点地图列出了网站上的网址,并进一步允许网站站长指定一些其他信息,如最后更新日期、内容变化、网址相对重要性给其他人等等。每个网址。

  网站 的大小是多少?

  网站的大小,也就是网站的页数会影响我们的抓取方式吗?当然可以。因为如果我们要爬取的网页数量很少,那么效率不会是一个严重的问题,但是假设我们的网站有几百万个网页,比如按顺序下载每个网页需要在一个几个月后,效率就会成为一个严重的问题。

  检查网站的大小

  通过查看谷歌爬虫结果的大小,我们可以估算出网站的大小。在进行 Google 搜索时,我们可以使用关键字 网站 来过滤我们的结果。例如,估计大小如下所示;

  

  可以看到大约有60条结果,说明不是很大网站,爬取不会造成效率问题。

  网站用的是什么技术?

  另一个重要的问题是网站使用的技术是否会影响我们抓取的方式?是的,会影响的。但是我们如何检查网站使用的技术呢?有一个名为builtwith的Python库,可以帮助我们了解网站所使用的技术。

  例子

  在这个例子中,我们将检查 网站 使用的技术

  借助内置的 Python 库。但是在使用这个库之前,我们需要按如下方式安装它:

  (base) D:\ProgramData>pip install builtwith

Collecting builtwith

   Downloading

https://files.pythonhosted.org/packages/9b/b8/4a320be83bb3c9c1b3ac3f9469a5d66e0

2918e20d226aa97a3e86bddd130/builtwith-1.3.3.tar.gz

Requirement already satisfied: six in d:\programdata\lib\site-packages (from

builtwith) (1.10.0)

Building wheels for collected packages: builtwith

   Running setup.py bdist_wheel for builtwith ... done

   Stored in directory:

C:\Users\gaurav\AppData\Local\pip\Cache\wheels\2b\00\c2\a96241e7fe520e75093898b

f926764a924873e0304f10b2524

Successfully built builtwith

Installing collected packages: builtwith

Successfully installed builtwith-1.3.3

  现在,借助以下简单的代码行,我们可以检查特定 网站 使用的技术:

  In [1]: import builtwith

In [2]: builtwith.parse('http://authoraditiagarwal.com')

Out[2]:

{'blogs': ['PHP', 'WordPress'],

   'cms': ['WordPress'],

   'ecommerce': ['WooCommerce'],

   'font-scripts': ['Font Awesome'],

   'javascript-frameworks': ['jQuery'],

   'programming-languages': ['PHP'],

   'web-servers': ['Apache']}

  网站的主人是谁?

  网站 的拥有者也很重要,因为如果知道拥有者在阻止爬虫,爬虫从 网站 抓取数据时必须小心。有一个协议叫Whois,我们可以帮助我们了解网站的所有者。

  例子

  在此示例中,我们将检查 网站 的所有者是否说 Whois 有帮助。但是在使用这个库之前,我们需要按如下方式安装它:

  (base) D:\ProgramData>pip install python-whois

Collecting python-whois

   Downloading

https://files.pythonhosted.org/packages/63/8a/8ed58b8b28b6200ce1cdfe4e4f3bbc8b8

5a79eef2aa615ec2fef511b3d68/python-whois-0.7.0.tar.gz (82kB)

   100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 92kB 164kB/s

Requirement already satisfied: future in d:\programdata\lib\site-packages (from

python-whois) (0.16.0)

Building wheels for collected packages: python-whois

   Running setup.py bdist_wheel for python-whois ... done

   Stored in directory:

C:\Users\gaurav\AppData\Local\pip\Cache\wheels\06\cb\7d\33704632b0e1bb64460dc2b

4dcc81ab212a3d5e52ab32dc531

Successfully built python-whois

Installing collected packages: python-whois

Successfully installed python-whois-0.7.0

  现在,借助以下简单的代码行,我们可以检查特定 网站 使用的技术:

  In [1]: import whois

In [2]: print (whois.whois('microsoft.com'))

{

   "domain_name": [

      "MICROSOFT.COM",

      "microsoft.com"

   ],

   -------

   "name_servers": [

      "NS1.MSFT.NET",

      "NS2.MSFT.NET",

      "NS3.MSFT.NET",

      "NS4.MSFT.NET",

      "ns3.msft.net",

      "ns1.msft.net",

      "ns4.msft.net",

      "ns2.msft.net"

   ],

   "emails": [

      "abusecomplaints@markmonitor.com",

      "domains@microsoft.com",

      "msnhst@microsoft.com",

      "whoisrelay@markmonitor.com"

   ],

}

  上一节

  下一节

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线