python爬虫1.网络爬虫是什么?(代码片段)

CodeAllen2021 CodeAllen2021     2023-03-01     552

关键词:

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。

认识爬虫

我们所熟悉的一系列搜索引擎都是大型的网络爬虫,比如百度、搜狗、360浏览器、谷歌搜索等等。每个搜索引擎都拥有自己的爬虫程序,比如 360 浏览器的爬虫称作 360Spider,搜狗的爬虫叫做 Sogouspider。
 


百度搜索引擎,其实可以更形象地称之为百度蜘蛛(Baiduspider),它每天会在海量的互联网信息中爬取优质的信息,并进行收录。当用户通过百度检索关键词时,百度首先会对用户输入的关键词进行分析,然后从收录的网页中找出相关的网页,并按照排名规则对网页进行排序,最后将排序后的结果呈现给用户。在这个过程中百度蜘蛛起到了非常想关键的作用。

百度的工程师们为“百度蜘蛛”编写了相应的爬虫算法,通过应用这些算法使得“百度蜘蛛”可以实现相应搜索策略,比如筛除重复网页、筛选优质网页等等。应用不同的算法,爬虫的运行效率,以及爬取结果都会有所差异。

爬虫分类

爬虫可分为三大类:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫。

通用网络爬虫:是搜索引擎的重要组成部分,上面已经进行了介绍,这里就不再赘述。通用网络爬虫需要遵守 robots 协议,网站通过此协议告诉搜索引擎哪些页面可以抓取,哪些页面不允许抓取。

robots 协议:是一种“约定俗称”的协议,并不具备法律效力,它体现了互联网人的“契约精神”。行业从业者会自觉遵守该协议,因此它又被称为“君子协议”。

聚焦网络爬虫:是面向特定需求的一种网络爬虫程序。它与通用爬虫的区别在于,聚焦爬虫在实施网页抓取的时候会对网页内容进行筛选和处理,尽量保证只抓取与需求相关的网页信息。聚焦网络爬虫极大地节省了硬件和网络资源,由于保存的页面数量少所以更新速度很快,这也很好地满足一些特定人群对特定领域信息的需求。

增量式网络爬虫:是指对已下载网页采取增量式更新,它是一种只爬取新产生的或者已经发生变化网页的爬虫程序,能够在一定程度上保证所爬取的页面是最新的页面。

爬虫应用

随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战,因此爬虫应运而生,它不仅能够被使用在搜索引擎领域,而且在大数据分析,以及商业领域都得到了大规模的应用。

1) 数据分析

在数据分析领域,网络爬虫通常是搜集海量数据的必备工具。对于数据分析师而言,要进行数据分析,首先要有数据源,而学习爬虫,就可以获取更多的数据源。在采集过程中,数据分析师可以按照自己目的去采集更有价值的数据,而过滤掉那些无效的数据。

2) 商业领域

对于企业而言,及时地获取市场动态、产品信息至关重要。企业可以通过第三方平台购买数据,比如贵阳大数据交易所、数据堂等,当然如果贵公司有一个爬虫工程师的话,就可通过爬虫的方式取得想要的信息。

爬虫是一把双刃剑

爬虫是一把双刃剑,它给我们带来便利的同时,也给网络安全带来了隐患。有些不法分子利用爬虫在网络上非法搜集网民信息,或者利用爬虫恶意攻击他人网站,从而导致网站瘫痪的严重后果。关于爬虫的如何合法使用,推荐阅读《中华人民共和国网络安全法》。
 


为了限制爬虫带来的危险,大多数网站都有良好的反爬措施,并通过 robots.txt 协议做了进一步说明,下面是淘宝网 robots.txt 的内容:

User-agent: Baiduspider 
Disallow: /baidu Disallow: /s? 
Disallow: /ulink? 
Disallow: /link? 
Disallow: /home/news/data/ 
Disallow: /bh
.....
User-agent: * 
Disallow: /

从协议内容可以看出,淘宝网对不能被抓取的页面做了规定。因此大家在使用爬虫的时候,要自觉遵守 robots 协议,不要非法获取他人信息,或者做一些危害他人网站的事情。

为什么用Python做爬虫

首先您应该明确,不止 Python 这一种语言可以做爬虫,诸如 PHP、Java、C/C++ 都可以用来写爬虫程序,但是相比较而言 Python 做爬虫是最简单的。下面对它们的优劣势做简单对比:

PHP:对多线程、异步支持不是很好,并发处理能力较弱;Java 也经常用来写爬虫程序,但是 Java 语言本身很笨重,代码量很大,因此它对于初学者而言,入门的门槛较高;C/C++ 运行效率虽然很高,但是学习和开发成本高。写一个小型的爬虫程序就可能花费很长的时间。

而 Python 语言,其语法优美、代码简洁、开发效率高、支持多个爬虫模块,比如 urllib、requests、Bs4 等。Python 的请求模块和解析模块丰富成熟,并且还提供了强大的 Scrapy 框架,让编写爬虫程序变得更为简单。因此使用 Python 编写爬虫程序是个非常不错的选择。

编写爬虫的流程

爬虫程序与其他程序不同,它的的思维逻辑一般都是相似的, 所以无需我们在逻辑方面花费大量的时间。下面对 Python 编写爬虫程序的流程做简单地说明:

  • 先由 urllib 模块的 request 方法打开 URL 得到网页 HTML 对象。
  • 使用浏览器打开网页源代码分析网页结构以及元素节点。
  • 通过 Beautiful Soup 或则正则表达式提取数据。
  • 存储数据到本地磁盘或数据库。


当然也不局限于上述一种流程。编写爬虫程序,需要您具备较好的 Python 编程功底,这样在编写的过程中您才会得心应手。爬虫程序需要尽量伪装成人访问网站的样子,而非机器访问,否则就会被网站的反爬策略限制,甚至直接封杀 IP。

python网络爬虫课程设计(代码片段)

...题式网络爬虫设计方案(10分)1.主题式网络爬虫名称《Python爬虫对站长之家网站分类信息网站排行榜的爬取及分析》2.主题式网络爬虫爬取的内容与数据特征分析爬取内容:各类网站的网 查看详情

python爬虫1.网络爬虫是什么?(代码片段)

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的... 查看详情

python爬虫1.网络爬虫是什么?(代码片段)

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的... 查看详情

python爬虫详解(代码片段)

python爬虫详解1、基本概念1.1、什么是爬虫  网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。随着网络的迅速发展,万维网... 查看详情

网络爬虫初探网络爬虫(代码片段)

...箭手2.八爪鱼3.造数4.后羿采集器爬虫技术怎么学?1.python基础语法2.学习python爬虫常用到的几个重要内置库Requests,用于网页请求3.学习正则表达式,re,Xpath,lxml等网页解析工具4.开始一些简单的网页爬取,... 查看详情

爬虫基本原理(代码片段)

一、爬虫是什么  1、什么是互联网  互联网是网络设备(网络、路由器、交换机、防火墙等等)和一台台计算机连接而成,像一张网一样。  2、互联网建立的目的  互联网的核心价值在于数据的共享/传递:数据是存放... 查看详情

爬虫基础(代码片段)

1.什么是爬虫(重点掌握)网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。原则上,只要是浏览器(客户端)能做的事情,爬虫都能够... 查看详情

python项目实战之网络爬虫详解(代码片段)

文章目录一、概述二、原理三、爬虫分类1、传统爬虫2、聚焦爬虫3、通用网络爬虫(全网爬虫)四、网页抓取策略1、宽度优先搜索:2、深度优先搜索:3、最佳优先搜索:4、反向链接数策略:5、PartialPageRa... 查看详情

爬虫-requests(代码片段)

requests模块-1.什么是requests模块-python原生一个基于网络请求的模块,模拟浏览器发起请求。-2.为什么要使用requests模块-1.自动处理url编码-2.自动处理post请求的参数-3.简化cookie的代理的操作:cookie操作:-创建一个cookiejar对象-创建... 查看详情

爬虫之requests(代码片段)

一、request模块介绍1.什么是request模块-python中原生的基于网络请求的模块,模拟浏览器发起请求。2.为什么使用request模块-urllib需要手动处理url编码,quote()。-urllib需要手动处理post请求参数。-cookie的代理操作比较繁琐1.cookie-创建... 查看详情

〖python网络爬虫实战⑤〗-session和cookie介绍(代码片段)

...他专栏。免费阶段订阅量1000+                python项目实战                Python编程基础教程系列(零基础小白搬砖逆袭)说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅... 查看详情

scrapy爬虫框架(代码片段)

...同学习!一、框架详解Scrapy是由Twisted写的一个受欢迎的python事件驱动网络框架,它使用的是非阻塞的异步处理。1.内部各组件的作用  ScrapyEngine(scrapy引擎):是用来控 查看详情

爬虫是什么,爬虫能干啥,爬虫怎么爬,一篇文章教会你所有(代码片段)

这篇文章的定位是,给有一些python基础,但是对爬虫一无所知的人写的。文中只会涉及到爬虫最核心的部分,完全避开莫名其妙的坑或概念,让读者觉得爬虫是一件非常简单的事情,而事实上爬虫确实是一件非常简单的事情(如... 查看详情

python爬虫编程思想:网页基础(代码片段)

     目录1.HTML2.CSS3.CSS选择器4 .JavaScriptPython爬虫编程思想(4):网络爬虫的基本原理        整个互联网拥有数以亿计的网页,这些网页的样式千差万别,但不管是什么样的网页,都离不开Web三剑客... 查看详情

爬虫大作业(代码片段)

...交网络站点数据。爬取的站点:http://heyuan.8684.cn/ 2.用python编写爬虫程序,从网络上爬取相关主题的数据。(1)环境配置:importrequests##导入requestsfrombs4importBeautifulSoup##导入bs4中的BeautifulSouphead 查看详情

一个金蝶网址的网络爬虫(代码片段)

  学习爬虫技术已经很久了,想着是时候写一些爬虫的心得了,首先,爬虫是什么呢?百度可得:网络爬虫是一种程序,主要用于搜索引擎,它将一个网站的所有内容与链接进行阅读,并建立相关的全文索引到数据库中,然后跳到... 查看详情

python网络爬虫(代码片段)

查看详情

python爬虫|网络爬虫简介(代码片段)

文章目录Python爬虫|网络爬虫简介网络爬虫何时有用网络爬虫是否合法背景调研检查robots.txt检查网站地图估算网站大小识别网站所用技术寻找网站所有者编写第一个网络爬虫下载网页网站地图爬虫ID遍历爬虫链接爬虫Python爬虫|网... 查看详情