【网络爬虫技术】(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设计和前端开发领域的从业者,其观点始终认为:智能汽车已经成为现代交通的新宠。其中,触摸屏中控系统以其美观、智能、人性化的特点,为驾驶…

Electron的入门介绍与使用React18+Vite+Electron(2)共30节

上一篇讲了如何安装Electron和简单例子,Electron的入门介绍与使用(1)共30节 让我们回顾一下Electron的发展历史,Electron 最初由 GitHub 公司开发,最早用于构建 GitHub Desktop。随着其成功,Electron 逐渐…

在线投稿小程序的设计

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

从零开始的Python开发日记(3):Flask框架的使用

最近学会了使用Python的Flask框架,并通过该框架实现API的调用以及转发,以下是flask框架下前后端的数据交互模式 后端:python 的 flask 框架 前端:html、css、js前后端数据交互的方式: 一、前端发送数据,后…

Unity ParticleSystem:创造魔法般的视觉效果

Unity的ParticleSystem是一个功能强大的组件,用于创建各种动态的粒子效果,如火焰、烟雾、雨滴、爆炸等。它不仅可以用于增加游戏的视觉吸引力,还可以用于实现复杂的动画效果。本文将探讨如何使用Unity的ParticleSystem组件来实现动画效果。 …

2022.11.17 阿里钉钉数据开发岗位一面

今天晚上和阿里钉钉面试官聊了一面,整个过程持续45分钟,还是相当持久的。前面先让我自我介绍,包括自身背景、工作经历和项目经验,在介绍的时候面试官几次打断,让我停下来,然后他提问,我很纳闷还…

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) >…

机械硬盘更换判断方法

1. 频繁出现坏道&#xff1a;通过硬盘检测工具检测到硬盘存在大量坏道&#xff0c;且修复后仍不断出现&#xff0c;这可能意味着硬盘即将损坏。 2. 数据读写错误增多&#xff1a;在读写数据时频繁出现错误提示&#xff0c;文件损坏或丢失的情况频繁发生。 3. 异常噪音&#xff…

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

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

宝塔/Linux/docker安装zincsearch

安装步骤 创建zincsearch目录 mkdir -p /www/wwwroot/zincsearch/data 修改目录权限 chmod arwx /www/wwwroot/zincsearch/data 创建实例 mkdir data docker run -v /www/wwwroot/zincsearch/data:/data -e ZINC_DATA_PATH"/data" -p 4080:4080 \-e ZINC_FIRST…

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

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

Filebeat安装部署及入门应用

前言 后续开发项目要用到 Filebeat 对日志做收集和处理。本文介绍了 ELK 技术中的 Filebeat&#xff0c;用于轻量级的日志收集和分析 参考资料&#xff1a; 视频教程&#xff1a;Elastic Stack&#xff08;ELK&#xff09;从入门到实践 官方文档&#xff1a;Filebeat overv…

Linux定时同步系统时间到硬件时间

Linux定时同步系统时间到硬件时间 1. 系统时间、软件时间 系统时间 &#xff08;System Time&#xff09;&#xff1a; 一般说来就是我们执行 date命令看到的时间&#xff0c;linux系统下所有的时间调 用&#xff08;除了直接访问硬件时间的命令&#xff09;都是使用的这个时…