爬虫(一):爬虫基础

发布时间:2021-10-18 13:52:48

基本介绍

网络爬虫是模拟客户端(主要是浏览器)发送请求/接收响应,自动抓取互联网信息的程序


没有明确的法律法规,尽量不要采集个人信息原则上,只要是客户端能做的事情,爬虫都能做爬虫只能获取客户端所能展示的数据
学*路径
    requests模块非常重要,需要掌握selenium可以实现非常简单但能用的爬虫反爬机制mongodb只需要知道怎么用mongodb以及怎么与python交互scrapy爬虫框架appium用于手机的数据采集

爬虫的作用
    数据采集(用于机器学*舆情监控/数据挖掘)软件测试(自动化测试)虫师博客抢票投票网络安全(短信轰炸,web漏洞扫描)

爬虫的分类

根据被爬网站的数量不同,可分为


通用爬虫,如搜索引擎聚焦爬虫,专门抓取某一类网站

根据是否以获取数据为目的,可分为


功能性爬虫,如投票数据增量爬虫,如招聘信息

根据url地址和对应的页面内容是否改变,数据增量爬虫可分为:


基于url地址变化、内容也随之变化的爬虫基于url地址不变,内容变化的爬虫
爬虫的流程

scrapy是这个流程的抽象
url_list -> 发送请求-> 解析响应-> 保存数据


    获取url向url发送请求,获取响应(需要http协议)如果从响应中提取url,则继续发送请求获取响应如果从响应中获取数据,则保存

http协议复*
http与https的概念和默认端口
http协议是应用层协议,是发送请求、获取响应需要的https比http安全,但效率低一些HTTP超文本传输协议,默认端口号80,明文传输HTTPS:HTTP+SSL(安全套接字层),默认端口号443,SSL对传输内容进行加密
掌握爬虫关注的请求头和响应头

几个重要请求头:


Content-TypeHost:
主机号Connection:
HTTP和HTTPS架构在TCP/IP之上,先建立Socket链接,keep-alive避免要三次握手四次断开Upgrade-Insecure-Requests:
如果有更安全的协议,就升级,这就是为什么访问百度抓包可以抓到一个重定向的原因User-Agent
发请求的浏览器以及机器的信息
Mozilla是一个基金会,几乎市面上所有浏览器都遵守Mozilla/5.0Referer
页面跳转处,页面请求是从哪来的,检查请求是否合法,防盗链(图片/视频)Cookie
保持会话,有时效性Authorization:
很少出现,自己练*时输入账号密码会用到

重要响应头:


Set-Cookie:
对方服务器设置Cookie到用户浏览器的缓存
常见响应状态码
200:成功302:跳转,新的url在响应的Location头中给出303:浏览器对于POST的响应进行重定向至新URL307:浏览器对于GET的响应重定向403:资源不可用,服务器理解请求,但拒绝处理(没有权限)404:找不到该页面500:服务器内部错误503:服务器由于维护或负载过重未能答应,响应中可能带有Retry-After响应头(多久之后能重新访问一次);有可能是因为爬虫频繁访问url

所有状态码都不可信
可能服务器识别为爬虫了,也返回200或者500或者其他,所以不能光看状态码,这时尝试浏览器能访问,而爬虫不能访问,就是有可能被识别为爬虫了


Network中的Response得到的源码才是判断依据,而Elements中的源码是渲染之后的源码它不能作为判断依据



浏览器的运行过程

客户机发送域名给DNS,DNS返回IP地址
客户机通过IP地址请求服务器,服务器响应


http请求过程
    客户机通过IP地址请求服务器,服务器响应浏览器引擎解析响应内容,发现里面需要用到的src,引擎按照顺序发出其他请求并获取相应的响应浏览器加载每个获取到的响应,js,css等内容会修改页面内容,js也可以重新发送请求获取响应从获取第一个响应并在浏览器中展示,直到获取全部响应,并在站是的结果中添加内容或修改,整个过程叫浏览器的***渲染***

在这里可以看到Initiator,除了第一个,都是引擎下载的


浏览器展示的结果可以是由多次请求对应的多次响应渲染出来的


爬虫:
只发送指定请求,不会渲染
浏览器:
发送所有请求,进行渲染


发送请求的文件分类
    骨骼文件:HTML,静态文件肌肉文件:JS / Ajax请求,产生动态效果皮肤文件:CSS / font / 图片

抓包过程
    分别按流程在骨骼、肌肉、皮肤文件中查找数据发送请求给目标文件

相关文档

  • 诸城电商创业园发展情况
  • 二年级小学生读书心得体会
  • 我学习外语和外国文学的经历
  • 会计专业应届毕业生自我介绍共5篇
  • 蒙特卡罗方法
  • 迫在眉梢歌谱
  • Java学习-集合类-各种集合类之间的相互转换
  • 杭州UI设计老师讲解深色模式和浅色模式
  • 线性表的简介(基本概念和存储结构)
  • 女友生日空间说说
  • 篮球防守技巧教学视频
  • 安卓 “Handler” is abstract; cannot be instantiated 解决方法
  • Aletterofrecommending一封推荐信
  • 公司副经理竞聘演讲稿精选范文
  • 在SQL语句里面如何将字符型转换成数字型
  • 螃蟹能在水里呼吸吗,靠什么器官呼吸
  • 【目标检测】SPP(Spatial Pyramid Pooling)解读
  • 宇宙的未来教案
  • 空空如也造句
  • 什么是定点数?
  • 2015中国大学法学学科专业排名
  • 韩式甜美化妆视频
  • 绿茵场上雪耻阅读题及答案
  • 眼睛干涩和雾霾有关系吗?雾霾天眼睛干涩不舒服怎么办?
  • 短命的人面相怎么样
  • 萝卜根的营养价值萝卜根的功效与作用
  • Typora+PicGo-core插入图片自动上传,gitee,gitgub,sm.ms三种免费图床
  • 各种动物卡通画
  • 实习教师转正自我鉴定范文
  • 我做错了事作文100字
  • 猜你喜欢

    电脑版