展会邀请函在哪个网站做,创建网站用突唯阿做响应式网站,哪个网站上可以做初中数学题,win2003建设网站一、什么是爬虫#xff1f;
1.简单介绍爬虫 爬虫的全称为网络爬虫#xff0c;简称爬虫#xff0c;别名有网络机器人#xff0c;网络蜘蛛等等。
网络爬虫是一种自动获取网页内容的程序#xff0c;为搜索引擎提供了重要的数据支撑。搜索引擎通过网络爬虫技术#xff0c;将…一、什么是爬虫
1.简单介绍爬虫 爬虫的全称为网络爬虫简称爬虫别名有网络机器人网络蜘蛛等等。
网络爬虫是一种自动获取网页内容的程序为搜索引擎提供了重要的数据支撑。搜索引擎通过网络爬虫技术将互联网中丰富的网页信息保存到本地形成镜像备份。我们熟悉的谷歌、百度本质上也可理解为一种爬虫。
如果形象地理解爬虫就如同一只机器蜘蛛它的基本操作就是模拟人的行为去各个网站抓取数据或返回数据。
2.爬虫的分类
网络爬虫一般分为传统爬虫和聚焦爬虫。
传统爬虫从一个或若干个初始网页的URL开始抓取网页时不断从当前页面上抽取新的URL放入队列直到满足系统的一定条件才停止即通过源码解析来获得想要的内容。
聚焦爬虫需要根据一定的网页分析算法过滤与主题无关的链接保留有用的链接并将其放入待抓取的URL队列再根据一定的搜索策略从队列中选择下一步要抓取的网页URL并重复上述过程直到满足系统的一定条件时停止。另外所有被爬虫抓取的网页都将会被系统存储、分析、过滤并建立索引以便之后的查询和检索;对于聚焦爬虫来说这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
防爬虫:KS-WAF网站统一防护系统将爬虫行为分为搜索引擎爬虫及扫描程序爬虫可屏蔽特定的搜索引擎爬虫节省带宽和性能也可屏蔽扫描程序爬虫避免网站被恶意抓取页面。使用防爬虫机制的基本上是企业我们平时也能见到一些对抗爬虫的经典方式如图片验证码、滑块验证、封禁 IP等等。
3.爬虫的工作原理
下图是一个网络爬虫的基本框架 对应互联网的所有页面可划分为五部分 1.已下载未过期网页。 2.已下载已过期网页抓取到的网页实际上是互联网内容的一个镜像文件互联网是动态变化的一部分互联网上的内容已经发生了变化这时这部分抓取到的网页就已经过期了。 3.待下载网页待抓取URL队列中的页面。 4.可知网页既没有被抓取也没有在待抓取URL队列中但可通过对已抓取页面或者待抓取URL对应页面进行分析获取到的URL认为是可知网页。 5.不可知网页爬虫无法直接抓取下载的网页。 待抓取URL队列中的URL顺序排列涉及到抓取页面的先后次序问题而决定这些URL排列顺序的方法叫做抓取策略。下面介绍六种常见的抓取策略
1.深度优先遍历策略
深度优先遍历策略是指网络爬虫从起始页开始由一个链接跟踪到另一个链接这样不断跟踪链接下去直到处理完这条线路之后再转入下一个起始页继续跟踪链接。以下图为例 遍历路径A-F-G E-H-I B C D
需要注意的是深度优先可能会找不到目标节点即进入无限深度分支因此深度优先策略不一定能适用于所有情况。
2.宽度优先遍历策略
宽度优先遍历策略的基本思路是将新下载网页中发现的链接直接插入待抓取URL队列的末尾。也就是指网络爬虫会先抓取起始网页中链接的所有网页然后再选择其中的一个链接网页继续抓取在此网页中链接的所有网页。还是以上图为例 遍历路径第一层A-B-C-D-E-F第二层G-H第三层I
广度优先遍历策略会彻底遍历整个网络图效率较低但覆盖网页较广
3.反向链接数策略
反向链接数是指一个网页被其他网页链接指向的数量。反向链接数反映一个网页的内容受到其他人推荐的程度。因此很多时候搜索引擎的抓取系统会使用这个指标来评价网页的重要程度从而决定不同网页的抓取先后顺序。
而现实是网络环境存在各种广告链接、作弊链接的干扰使得许多反向链接数反映的结果并不可靠。
4.Partial PageRank策略
Partial PageRank策略借鉴了PageRank算法的思想对于已下载网页连同待抓取URL队列中的URL形成网页集合计算每个页面的PageRank值然后将待抓取URL队列中的URL按照PageRank值的大小进行排列并按照该顺序抓取页面。
若每次抓取一个页面就重新计算PageRank值则效率太低。
一种折中方案是每抓取K个页面后重新计算一次PageRank值。而对于已下载页面中分析出的链接即暂时没有PageRank值的未知网页那一部分先给未知网页一个临时的PageRank值再将这个网页所有链接进来的PageRank值进行汇总这样就形成了该未知页面的PageRank值从而参与排序。以下图为例 设k值为3即每抓取3个页面后重新计算一次PageRank值。
已知有{1,2,3}这3个网页下载到本地这3个网页包含的链接指向待下载网页{4,5,6}即待抓取URL队列此时将这6个网页形成一个网页集合对其进行PageRank值的计算则{4,5,6}每个网页得到对应的PageRank值根据PageRank值从大到小排序由图假设排序结果为5,4,6当网页5下载后分析其链接发现指向未知网页8这时先给未知网页8一个临时的PageRank值如果这个值大于网页4和6的PageRank值则接下来优先下载网页8由此思路不断进行迭代计算。
5.OPIC策略
此算法其实也是计算页面重要程度。在算法开始前给所有页面一个相同的初始现金cash。当下载了某个页面P之后将P的现金分摊给所有从P中分析出的链接并且将P的现金清空。对于待抓取URL队列中的所有页面按照现金数大小进行排序。
6.大站优先策略
对于待抓取URL队列中的所有网页根据所属的网站进行分类。待下载页面数多的网站优先下载。
二、爬虫的基本流程 首先简单了解关于Request和Response的内容
Request浏览器发送消息给某网址所在的服务器这个请求信息的过程叫做HTTP Request。
Response:服务器接收浏览器发送的消息并根据消息内容进行相应处理然后把消息返回给浏览器。这个响应信息的过程叫做HTTP Response。浏览器收到服务器的Response信息后会对信息进行相应处理然后展示在页面上。
根据上述内容将网络爬虫分为四个步骤
1.发起请求通过HTTP库向目标站点发起请求即发送一个Request请求可以包含额外的headers等信息等待服务器响应。
常见的请求方法有两种GET和POST。get请求是把参数包含在了URLUniform Resource Locator,统一资源定位符里面而post请求大多是在表单里面进行也就是让你输入用户名和秘密在url里面没有体现出来这样更加安全。post请求的大小没有限制而get请求有限制最多1024个字节。
2.获取响应内容如果服务器能正常响应会得到一个ResponseResponse的内容便是所要获取的页面内容类型可能有HTMLJson字符串二进制数据如图片视频等类型。
3.解析内容得到的内容可能是HTML可以用正则表达式、网页解析库进行解析。可能是Json可以直接转为Json对象解析可能是二进制数据可以做保存或者进一步的处理。
在Python语言中我们经常使用Beautiful Soup、pyquery、lxml等库可以高效的从中获取网页信息如节点的属性、文本值等。
Beautiful Soup库是解析、遍历、维护“标签树”的功能库对应一个HTML/XML文档的全部内容。安装方法非常简单如下
#安装方法
pips install beautifulsoup4#验证方法
from bs4 import BeautifulSoup
4.保存数据如果数据不多可保存在txt 文本、csv文本或者json文本等。如果爬取的数据条数较多可以考虑将其存储到数据库中。也可以保存为特定格式的文件。
保存后的数据可以直接分析主要使用的库如下NumPy、Pandas、 Matplotlib。
NumPy它是高性能科学计算和数据分析的基础包。
Pandas : 基于 NumPy 的一种工具该工具是为了解决数据分析任务而创建的。它可以算得上作弊工具。
MatplotlibPython中最著名的绘图系统Python中最著名的绘图系统。它可以制作出散点图折线图条形图直方图饼状图箱形图散点图折线图条形图直方图饼状图箱形图等。
三、爬虫简单实例
运行平台 Windows
Python版本 Python3.7
首先查看网址的源代码使用google浏览器右键选择检查查看需要爬取的网址源代码在Network选项卡里面点击第一个条目可看到源代码。
第一部分是General包括了网址的基本信息比如状态 200等第二部分是Response Headers,包括了请求的应答信息,还有body部分比如Set-Cookie,Server等。第三部分是Request headers包含了服务器使用的附加信息比如Cookie,User-Agent等内容。
上面的网页源代码在python语言中我们只需要使用urllib、requests等库实现即可具体如下
import urllib.request
import socket
from urllib import error
try:response \ urllib.request.urlopen(https://www.python.org)print(response.status)print(response.read().decode(utf-8))
except error.HTTPError as e:print(e.reason,e.code,e.headers,sep\\n)
except error.URLError as e:print(e.reason)
else:
print(Request Successfully)