网络爬虫基础知识必知必会

news/2024/7/19 10:37:34 标签: 爬虫, python, 开发语言

什么是网络爬虫

网络爬虫又称网页蜘蛛,网络机器人,是一种按照一定规则,自动请求万维网网站并且提取网页信息的程序或脚本

爬虫可以分为几类

  • 按照使用场景分类
    • 通用爬虫: 一般都是搜索引擎,爬取范围大,种类多
    • 聚焦爬虫:面向指定的网站,更加具有针对性,也是平常我们写的爬虫
  • 按照爬取形式分类
    • 积累式爬虫:一般用于数据集合的整体建立或大规模更新阶段
    • 增量爬虫 :用于对数据集合的日常维护与更新
  • 按照爬取数据的存在方式
    • 表层爬虫:一般是爬取直接看到的静态页面
    • 深层爬虫 :爬取的数据是隐藏的,不能直接看到的,数据需要提交表单以后才能爬取

法律风险

  • 爬虫干扰了被访问网站的正常运营;
  • 爬虫抓取了受到法律保护的特定类型的数据或信息。
  • 爬取个人信息、隐私,

Robots协议

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots ExclusionProtocol),是一种网届通行的道德规范,围绕搜索技术应服务于人,同时尊重信息提供者的意愿,并维护其隐私权;网站有义务保护其使用者的个人信息和隐私不受侵犯。
网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取. 根据协议,网站管理员可以在网站域名的根目录下放一个robots.txt 文本文件,里面可以指定不同的网络爬虫能访问的页面和禁止访问的页面,指定的页面由正则表达式表示。 网络爬虫在采集这个网站之前,首先获取到这个文件,然后解析到其中的规则,然后根据规则来采集网站的数据。 注意,这个协议的存在更多的是需要网络爬虫去遵守,而起不到防止爬虫的功能。

避免风险:

  • 严格遵守网站设置的robots协议;
  • 在规避反爬虫措施的同时,需要优化自己的代码,避免干扰被访问网站的正常运行;
  • 在使用、传播抓取到的信息时,应审查所抓取的内容,如发现属于用户的个人信息、隐私或者他人的商业秘密的,应及时停止并删除

爬虫伪装

  • 设置User-Agent
    • User-Agent是HTTP协议中的一个字段,其作用是描述发出HTTP请求终端的信息(操作系统版本,浏览器及其版本)服务器可以通过这个字段检测访问的网站是否是真用户,网络爬虫的User-Agent是固定的,服务器能够识别出来,所以在伪装爬虫的时候可以将爬原来的User-Agent设置成平常用户使用的User-Agent
  • 使用代理IP
    • 网站可以根据某个时间段内IP访问的次数来判断是否为爬虫,毕竟真实的用户的访问频率没有那么快,当IP被封以后,就不能正常的继续访问 。遇到这种情况可以采用代理IP进行解决,代理IP就是介于用户和服务器之间的的第三方,流程就是,爬虫将自己要要发送的请求交给代理IP,然后代理IP就再向服务器发请求,可以同时拥有多个代理IP,这样降低单个IP的频率,也可以快速爬取数据
  • 降低访问频率
    • 如果自己没有代理IP,那就降低爬取频率,减小服务器的压力

http://www.niftyadmin.cn/n/1371737.html

相关文章

typescript编译的一些配置

{"include": ["./src/**/*"],"exclude": ["./src/hello"],"compilerOptions": { "outDir":"./src/js",//指定es版本"target": "ES6",//指定要使用的模块化规范"module":…

Python队列Queue详解,超详细

Queuequeue模块简介queue.Queue(maxsize0)queue.LifoQueue(maxsize0)queue.PriorityQueue(maxsize0)queue.SimpleQueue (3.7 新版功能.)常用方法阻塞与抛出异常❤️ 作者简介:大家好我是小鱼干儿♛是一个热爱编程、热爱算法的大三学生,蓝桥杯国赛二等奖获…

爬虫实现并发爬取

单线程爬虫,多线程爬虫,多协程爬虫线程单线程实现多线程实现的流程协程协程爬虫的流程分析gevent协程实现流程通过多线程或多进程提高爬虫效率,比较各自的优劣情况,根据不同的业务条件选择不同的方式爬取的网址 https://wz.sun0769.com/polit…

typescript的webpack配置

TypeScript打包 webpack整合 通常情况下,实际开发中我们都需要使用构建工具对代码进行打包; TS同样也可以结合构建工具一起使用,下边以webpack为例介绍一下如何结合构建工具使用TS; 步骤如下: 初始化项目 进入项目…

Python Selenium库的使用【从安装到实战】

SeleniumSelenium简介Selenium 的安装Selenium基础操作定位UI元素鼠标动作链键盘常用下拉列表,填充表单非select元素,鼠标悬浮,以后展现select元素其他一些常用功能弹窗处理页面切换页面的前进和后退获取页面的Cookies获取页面的url页面等待固…

typescript贪吃蛇的webpack配置 及页面

需要的插件 npm i -D webpack webpack-cli webpack-dev-server typescript ts-loader clean-webpack-plugin html-webpack-plugin npm i -D babel/core babel/preset-env babel-loader core-js npm i -D less less-loader css-loader style-loader index.html <!DOCTYPE ht…

typescript+webpack配置实现贪吃蛇小游戏

需要下载的依赖 npm i -D webpack webpack-cli webpack-dev-server typescript ts-loader clean-webpack-plugin html-webpack-plugin npm i -D babel/core babel/preset-env babel-loader core-js npm i -D less less-loader css-loader style-loader webpack.config.js cons…