当前位置: 首页 > news >正文

【网络爬虫技术】(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代码

总结

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 深度学习高效性网络
  • 2024钉钉杯B题医疗门诊患者及用药数据案例分析
  • SolidWorks设计库的应用
  • 基于Golang+Vue3快速搭建的博客系统
  • 顺序表和单链表的代码实现
  • Ubuntu22.04安装Go语言的几种方式
  • Nginx系列-12 Nginx使用Lua脚本进行JWT校验
  • 【第三天】计算机网络 HTTP请求中常见的状态码 什么是强缓存和协商缓存
  • Spark进化论:从RDD到DataFrame,揭秘Spark SQL如何成为性能引擎的幕后英雄
  • 【数据结构】排序
  • Linux 安装 GDB (无Root 权限)
  • 【个人亲试最新】WSL2中的Ubuntu 22.04安装Docker
  • 构造+有序集合,CF 1023D - Array Restoration
  • CSS的常见难见
  • 谷粒商城实战笔记-编码经验积累
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Android 架构优化~MVP 架构改造
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Java基本数据类型之Number
  • Js基础知识(四) - js运行原理与机制
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • magento2项目上线注意事项
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • VUE es6技巧写法(持续更新中~~~)
  • vue数据传递--我有特殊的实现技巧
  • 测试如何在敏捷团队中工作?
  • 离散点最小(凸)包围边界查找
  • 前端面试之闭包
  • 微服务入门【系列视频课程】
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (~_~)
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (12)Hive调优——count distinct去重优化
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (二十三)Flask之高频面试点
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (五)activiti-modeler 编辑器初步优化
  • (五)IO流之ByteArrayInput/OutputStream
  • (原)本想说脏话,奈何已放下
  • (原創) 未来三学期想要修的课 (日記)
  • ./configure,make,make install的作用
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .net 7 上传文件踩坑
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net 发送邮件
  • .Net组件程序设计之线程、并发管理(一)
  • /bin/bash^M: bad interpreter: No such file or directory