【网络爬虫技术】(1·绪论)

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀网络爬虫开发技术入门_十二月的猫的博客-CSDN博客

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

1. 爬虫是什么

1.1 网络爬虫思想本质

1.2 网络爬虫核心

1.3 爬虫的用途 

​1.4 爬虫分类

1.4.1 通用爬虫

1.4.2 聚集爬虫

2. 反爬手段

总结


1. 爬虫是什么

网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本

网络爬虫还有许多其他的名字:

  • Crawler
  • Spider
  • Robot
  • Web agent
  • Wanderer
  • worm

这里面我最喜欢worm和spider

所以我后面的所有代码文件的命名都将采用这两个作为名字 

1.1 网络爬虫思想本质

网络爬虫获取网页信息本质上和人类获取网络信息是相同的思想

只不过爬虫能够自动化、快速化地多次重复完成人类的行为

人类浏览网络流程:

爬虫:伪装成人类向服务器发出请求,并获取服务器的返回信息

1.2 网络爬虫核心

  1. 爬取网页:爬取整个网页包含了网页中所有得内容
  2. 解析数据:将网页中你得到的数据进行解析(在大量数据中查找自己所想要的数据)
  3. 难点:爬虫和反爬虫之间的博弈

1.3 爬虫的用途 

  • 数据分析/人工数据集
  • 社交软件冷启动
  • 舆情监控
  • 竞争对手监控

社交软件冷启动:并没有真正存在人,而是从微博等地方获取个人信息,制造出假用户。从而来实现冷启动(引流)

出行:很多购票网站会去爬取12306,去爬12306的票,并将这个票用来自己售卖从而获取利润收入

1.4 爬虫分类

分为通用爬虫和聚焦爬虫,其中我们要学习和使用的是聚焦爬虫

1.4.1 通用爬虫

通用爬虫:

实例:

百度、360、google、sougou等搜索引擎‐‐‐伯乐在线

爬虫是搜索引擎用来收集互联网上网页信息的程序,是搜索引擎的一部分

它们按照预定的算法遍历网页并将内容抓取到搜索引擎的数据库中

搜索引擎的爬虫功能:

访问网页‐>抓取数据‐>数据存储‐>数据处理‐>提供检索服务

robots协议:

一个约定俗成的协议,添加robots.txt文件,来说明本网站哪些内容不可以被抓取,起不到限制作用 自己写的爬虫无需遵守

商用爬虫获取数据要遵循这个协议,不然被爬公司可以告你;

自己爬着玩随便爬的,这个协议就是一个txt文件,没有强制的限制作用

网站排名(SEO):

1. 根据pagerank算法值进行排名(参考个网站流量、点击率等指标) 2. 百度竞价排名

缺点:

1. 抓取的数据大多是无用的 2.不能根据用户的需求来精准获取数据

1.4.2 聚集爬虫

功能:

根据需求,实现爬虫程序,抓取需要的数据

设计思路:

1.确定要爬取的url

  • 如何获取Url

2.模拟浏览器通过http协议访问url,获取服务器返回的html代码

  • 如何访问

3.解析html字符串(根据一定规则提取需要的数据)

  • 如何解析

2. 反爬手段

  1. User‐Agent: User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。     
  2. 代理IP: 西次代理、快代理 、高匿名、匿名和透明代理。1.使用透明代理,对方服务器可以知道你使用了代理,并且也知道你的真实IP。2.使用匿名代理,对方服务器可以知道你使用了代理,但不知道你的真实IP。3.使用高匿名代理,对方服务器不知道你使用了代理,更不知道你的真实IP。        
  3. 验证码访问:利用打码平台:1、云打码平台;2、超级🦅
  4. 动态加载网页:网站返回的是js数据 并不是网页的真实数据 ——selenium驱动真实的浏览器发送请求    
  5. 数据加密:分析js代码

总结

如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/50863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日拱一卒 | JVM

文章目录 什么是JVM?JVM的组成JVM的大致工作流程JVM的内存模型 什么是JVM? 我们知道Java面试,只要你的简历上写了了解JVM,那么你就必然会被问到以下问题: 什么是JVM?简单说一下JVM的内存模型?…

梯度下降算法,gradient descent algorithm

定义:是一个优化算法,也成最速下降算法,主要的部的士通过迭代找到目标函数的最小值,或者收敛到最小值。 说人话就是求一个函数的极值点,极大值或者极小值 算法过程中有几个超参数: 学习率n,又称…

代码随想录算法训练营第22天-leetcode-回溯算法part01:

#回溯算法理论基础 能解决的问题: 组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列&…

大数据——HBase原理

摘要 HBase 是一个开源的、非关系型的分布式数据库系统,主要用于存储海量的结构化和半结构化数据。它是基于谷歌的 Bigtable 论文实现的,运行在 Hadoop 分布式文件系统(HDFS)之上,并且可以与 Hadoop 生态系统的其他组…

太美了!智能汽车触摸屏中控让驾驶员和乘客目不转睛

太美了!智能汽车触摸屏中控让驾驶员和乘客目不转睛 引言 艾斯视觉作为行业ui设计和前端开发领域的从业者,其观点始终认为:智能汽车已经成为现代交通的新宠。其中,触摸屏中控系统以其美观、智能、人性化的特点,为驾驶…

在线投稿小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,编辑管理,用户文章管理,文章分类管理,文章展示管理,文章稿酬管理,通知公告管理,系统管理 微信端账号功能包…

59 阻塞和非阻塞IO

阻塞式io 一个简单的用户输入回显功能&#xff0c;在用户未输入内容时&#xff0c;会一直阻塞住 #include <iostream> #include <unistd.h>using namespace std; int main() {char buff[1024];while (true){cout << "please enter ";fflush(stdo…

VAD: 向量化场景表示,用于高效的自动驾驶

VAD: Vectorized Scene Representation for Efficient Autonomous Driving VAD: 向量化场景表示&#xff0c;用于高效的自动驾驶 https://github.com/hustvl/VAD Abstract Autonomous driving requires a comprehensive understanding of the surrounding environment for …

英语单词终极记忆

你应当知道一个专业术语&#xff0c;叫COCA。 这个单词很好记&#xff0c;但你可能记不住。 你应当这样记&#xff1a; 你记住了 可口可乐&#xff0c;也就记住了 coca &#xff08;谐音&#xff1a;可口&#xff09;。 从而记住了 COCA。 无论如何&#xff0c;你这辈子&…

react版本判断是否面包含

react-admin: react版本 import { useState,useEffect } from react import ./Secene.css import { Checkbox } from "antd"; import* as turf from turf/turf; import type { CheckboxProps } from antd; // const onChange: CheckboxProps[onChange] (e) >…

Spring Boot + Spring Batch + Quartz 整合定时批量任务

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 前言 最近一周&#xff0c;被借调到其他部门&#xff0c;赶一个紧急需求&#xff0c;需求内容如下&#xff1a; PC网页触发一条设备升级记录&#xff08;下图&#xff09;&#xff0c;后台要定时批量设备更…

第15周 Zookeeper分布式锁与变种多级缓存

Zookeeper **************************************************************

Python客户端操作Elasticsearch

一.Python与Elasticsearch交互示例 这段代码是使用Python的elasticsearch模块与Elasticsearch进行交互的示例&#xff1a; from elasticsearch import Elasticsearch# 一.创建连接 # 建立到Elasticsearch的连接&#xff0c;指定主机和端口&#xff0c;设置请求超时时间为3600…

【C语言篇】C语言数据类型和变量

文章目录 C语言数据类型和变量1. 数据类型介绍1.1 字符型1.2 整形1.3 浮点型1.4 布尔类型1.5 各种类型数据长度1.5.1 sizeof操作符1.5.2 数据类型长度1.5.3 sizeof表达式不计算 2. signed和unsigned3. 数据类型的取值范围4. 变量4.1变量的创建4.2 变量的分类 5.强制类型转换 C语…

【C语言】【数据结构】二分查找(数组的练习)

目录 一、什么是二分查找 二、算法思想 2.1、概述 2.2、举例 &#xff08;1&#xff09;查找3&#xff08;数组里面存在的数&#xff09; &#xff08;2&#xff09;查找12&#xff08;数组里面不存在的数&#xff09; 三、代码实现 四、计算mid公式的优化 一、…

【03】Java虚拟机是如何加载Java类的

从class文件到内存中的类&#xff0c;按先后顺序需要经过加载、链接以及初始化三个步骤 一、加载 加载就是查找字节流&#xff0c;并且据此创建类的过程。 除了启动类加载器&#xff08;所有类加载器的祖师爷&#xff0c;由C实现&#xff0c;没有对应的Java对象&#xff09;之外…

大话成像公众号文章阅读学习(二)--- 下一代 AI-ISP会更好

系列文章目录 文章目录 系列文章目录前言一、AI-ISP1.1 定义与工作原理1.2 应用场景 二、展望总结 前言 这篇是 下一代 AI-ISP会更好 文章地址&#xff1a;https://mp.weixin.qq.com/s/N3YnkXF_stvP6k3jRTKCpQ 一、AI-ISP 1.1 定义与工作原理 定义&#xff1a;AI-ISP&#…

GEE:多面板同步缩放查看多源数据,并实现交互选点构建NDVI曲线

一. 目标 ①构建三个面板&#xff0c;分别显示不同来源数据&#xff1b; ②面板1显示哨兵数据面版2显示谷歌高清数据面板3实现用户任意交互选点&#xff0c;并以该点为中心构建正方形&#xff0c;随后生成该正方形的区域NDVI平均值长时序曲线&#xff1b; ③保证前两个面板可…

19.延迟队列优化

问题 前面所讲的延迟队列有一个不足之处&#xff0c;比如现在有一个需求需要延迟半个小时的消息&#xff0c;那么就只有添加一个新的队列。那就意味着&#xff0c;每新增一个不同时间需求&#xff0c;就会新创建一个队列。 解决方案 应该讲消息的时间不要跟队列绑定&#xf…

27、美国国家冰雪中心(NSIDC)海冰密集度月数据下载与处理

文章目录 一、前言二、数据下载三、使用Ponply查看数据结构四、代码一、前言 处理美国国家冰雪中心(NSIDC)的海冰密集度月度数据时,坐标转换是一个重要的步骤。NSIDC提供的数据通常采用极地球面坐标系,需要将其转换为常用的地理坐标系(如经纬度)以便进行分析和可视化。 坐…