【第一章】爬虫概述

爬虫概述

什么是爬虫?

不知道各位是否遇到过这样的需求,就是我们总是希望能够保存互联网上的一些重要的数据信息为己所用。

比如:

  • 在浏览到一些优秀的让人血脉喷张的图片时,总想保存起来留为日后做桌面上的壁纸

  • 在浏览到一些重要的数据时(各行各业),希望保留下来日后为自己进行各种销售行为增光添彩

  • 在浏览到一些奇奇怪怪的劲爆视频时,希望保存在硬盘里供日后慢慢品鉴

  • 在浏览到一些十分优秀的歌声曲目时,希望保存下来供我们在烦闷的生活中增添一份精彩

那么恭喜你,本课程将十分的适合于你。因为爬虫就是通过编写程序来爬取互联网上的优秀资源(图片,音频,视频,数据)。

爬虫和Python

爬虫一定要用Python么?非也~用Java也行,C也可以。请各位记住, 编程语言只是工具,抓到数据是你的目的,用什么工具去达到你的目的都是可以的。和吃饭一样,可以用叉子也可以用筷子,最终的结果都是你能吃到饭。

那为什么大多数人喜欢用Python呢?答案:因为Python写爬虫简单。不理解?问:为什么吃米饭不用刀叉?用筷子? 因为简单!好用!

而Python是众多编程语言中,小白上手最快,语法最简单,更重要的是,这货有非常多的关于爬虫能用到的第三方支持库。说直白点儿,就是你用筷子吃饭,我还附送你一个佣人,帮你吃!这样吃的是不是更爽了,更容易了~

爬虫合法么?

首先,爬虫在法律上是不被禁止的,也就是说法律是允许爬虫存在的。但是,爬虫也具有违法风险的。就像菜刀一样,法律是允许菜刀的存在的,但是你要是用来砍人,那对不起,没人惯着你。

就像王欣说过的,技术是无罪的,主要看你用它来干嘛。比方说有些人就利用爬虫+一些黑客技术每秒钟对着bilibili撸上十万八千次,那这个肯定是不被允许的。

爬虫分为善意的爬虫和恶意的爬虫:

  • 善意的爬虫:不破坏被爬取的网站的资源(正常访问,一般频率不高,不窃取用户隐私)

  • 恶意的爬虫:影响网站的正常运营(抢票,秒杀,疯狂solo网站资源造成网站宕机)

综上,为了避免风险,我们还是要安分守己,时常优化自己的爬虫程序,避免干扰到网站的正常运行。并且在使用爬取到的数据时,发现涉及到用户隐私和商业机密等敏感内容时,一定要及时终止爬取和传播。

爬虫的矛与盾

  • 反爬机制:门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。

  • 反反爬策略:爬虫程序可以通过制定相关的策略或者技术手段,破解门户网站中具备的反爬机制,从而可以获取门户网站中相关的数据。

robots.txt协议: 君子协议。规定了网站中哪些数据可以被爬虫爬取,哪些数据不可以被爬取。

示例(bilibili robots.txt):

https://www.bilibili.com/robots.txt

txt 复制代码
User-agent:* 
Disallow: /include/ 
Disallow: /mylist/ 
Disallow:/member/ 
Disallow: /images/ 
Disallow: /ass/ 
Disallow: /getapi 
Disallow: /search 
Disallow:/account 
Disallow: /badlist.html 
Disallow:/m/
相关推荐
smj2302_796826527 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
阿正呀8 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
2501_901200538 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
_.Switch9 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
Mr_sst9 小时前
Claude Code 部署与使用保姆级教程(2026 最新)
python·ai
瞎某某Blinder9 小时前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
m0_495496419 小时前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python
forEverPlume10 小时前
PHP怎么使用Eloquent Attribute Composition属性组合_Laravel通过组合构建复杂属性【方法】
jvm·数据库·python
Aleeeeex10 小时前
RAG 那点事:从 8 份企业文档到能用的问答系统,全过程拆给你看
人工智能·python·ai编程
2301_8092047010 小时前
mysql在docker容器中如何部署_利用docker-compose快速启动
jvm·数据库·python