一、什么是爬虫
爬虫(Crawler)是一种按照既定规则,在网络上自动爬取信息的程序或脚本。也称为网际网路蜘蛛(Internet Spider)或网络机器人(Web Robot)。爬虫可以自动抓取网络信息,主要用于网站数据采集、内容监测等。
二、爬虫能做什么
1、搜索引擎
搜索引擎利用爬虫发现网络上的页面,并建立索引,以提供搜索服务
2、数据采集
可以使用爬虫从网站上采集结构化的数据,例如天气预报、房价、商品价格等。这些数据可以用于分析。
3、网站检测
通过爬虫可以监测网站的运行状态、内容更新频率等,及时发现问题
4、舆情分析
使用爬虫技术可以采集相关的数据,进行产品、政策等方面的舆情分析。
5、自动化测试
6、做一些脱离手动的操作(帮人投票,12306投票,微信聊天助手-itchat)
三、数据能做什么
1、聚合产品
新闻网站,早期的今日头条
2、搜索引擎
百度、谷歌
3、数据分析、人工智能的源数据
4、特定领域的数据服务
二手车估价、天气预报、团购、去哪儿网
四、爬虫工作原理
爬虫的工作流程一般可以分为四步:
1. 确定几个初始URL作为入口
2. 发送请求下载对应的网页
3. 分析网页内容,提取需要的信息
4. 提取出页面中的链接作为新的URL
然后继续循环执行上述流程,直到满足结束条件。
五、爬虫类型
根据爬取的目标范围,爬虫可以分为两类:
1. 通用爬虫:爬取范围广泛,目标是发现网络上的所有信息,例如搜索引擎中的百度爬虫和谷歌爬虫。
2. 聚焦爬虫:爬取范围具体且清晰,以获取特定领域的信息,例如价格比较网站的产品价格爬虫。
六、爬虫工作流程详解
(一)确定初始URL
爬虫需要确定一个或多个初始URL作为入口。初始URL可以手动提供,也可以存储在数据库或其他文件中读取。
(二)下载网页
利用请求模块向初始URL发送请求,并下载对应的网页,通常会将页面内容以HTML格式保存。
(三)解析网页内容
根据网页元素的位置、属性等信息,使用解析模块提取出所需的数据。例如文章标题、发布时间、正文等。
(四)提取链接获取新URL
解析网页的同时,爬虫会提取出页面中的链接,作为后续待爬取的新URL。
重复上述流程,直到满足结束条件,例如爬取网页数达到预定量。
七、爬虫策略
(一)遵守robots协议robots协议定义了爬虫的访问频率等规则,爬虫需要遵守以避免过多占用服务器资源。
(二)限定爬取频率
在robots协议基础上,进一步合理限定爬取频率,减轻服务器压力。
(三)设置随机等待时间
让爬虫程序在发送请求之间等待一定随机时间,降低对服务器的负载。
(四)使用缓存和判重机制
使用缓存已经爬取过得页面,并设定判重机制,避免重复爬取
(五)采用用户代理
模拟浏览器的请求头和用户代理信息,避免被拒绝访问。
八、学号爬虫需要了解的知识
1、计算机网络(http/https协议,tcp/ip协议,socket编程)2、前端基础
3、正则表达式
4、数据存储技术(分布式存储)(nosql)
5、并发处理技术(多进程、多线程、线程池、协程)
6、图像识别(处理反爬、验证码),机器学习算法(验证码、数据解析)
九、爬虫中需要解决的问题
1、爬虫的采集和更新策略2、解决反爬
3、数据解析
4、数据存储
5、模拟登陆(验证码识别)
6、爬虫的监控和部署
7、数据的去重(url去重、内容去重)
十、如何正确看待爬虫
1、爬虫不应该毫无节制
2、robots协议
3、法律问题
4、爬虫不能抓取页面上看不到的数据,是为了防止重复工作
5、目标网站会乖乖让我们随便爬取数据吗?-反爬
disallow是不允许爬虫的目录
allow是允许爬虫的目录
慕课网robots协议
十一、计算机网络相关知识
协议相关看网络部分。
一个完整的网络请求过程
网络爬虫的基本原理,网络爬虫是捜索引擎抓取系统的重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。
网络请求过程
发起请求:通过 URL 向服务器发起 Request 请求(同打开浏览器,输入网址浏览网页),请求可以包含额外的 headers、cookies、proxies、data 等信息,Python 提供了许多库,帮助我们实现这个流程,完成 HTTP 请求操作,如 urllib、requests 等;
获取响应内容:如果服务器正常响应,会接收到 Response,Response 即为我们所请求的网页内容,包含 HTML(网页源代码),JSON 数据或者二进制的数据(视频、音频、图片)等;
解析内容:接收到响应内容后,需要对其进行解析,提取数据内容,如果是 HTML(网页源代码),则可以使用网页解析器进行解析,如正则表达式(re)、Beautiful Soup、pyquery、lxml 等;如果是 JSON 数据,则可以转换成 JSON 对象进行解析;如果是二进制的数据,则可以保存到文件进行进一步处理;
保存数据:可以保存到本地文件(txt、json、csv 等),或者保存到数据库(MySQL,Redis,MongoDB 等),也可以保存至远程服务器,如借助 SFTP 进行操作等。
IP地址和Url
IP地址
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
如果看自己本机地址,windows上使用ipconfig
URL
URL(网址)是Uniform Resource Locator的简写,统一资源定位符。每个URL指向一个独特的资源,可以是一个html页面、一个CSS文档、一个图片、文件、JS文件等。URL由以下几部分组成:
1、协议的类型。如:https
2、主机名称/域名。如:baike.baidu.com
3、端口号
4、查找路径。如:865?
5、查询参数(为?后所有内容)。如:fromtitle=%E8%80%81%E8%99%8E&fromid=65781,采用键值对形式,多个键值对用&隔开
6、锚点,前端用来做面定位的。现在一些前后端分离项目,也用锚点来做导航
前端定位:https://baike. baidu.com/item/*E5488%98%E8%8BKA5%E8%88%B1#2
锚点导航:动的是#之后的内容,根据错点去请求数据 https://music.163.com/#/friend
标签:网页,请求,URL,爬虫,爬取,概述,数据 From: https://www.cnblogs.com/longlyseul/p/18170091