100天精通Python(爬虫篇)——第43天:爬虫入门知识大总结

在这里插入图片描述

一、爬虫概述

1. 为什么要学习爬虫?

对于个人

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

  • 在浏宽到一些重要的数据时(各行各业),希望保留下来日后为自己进行各种销售行为增光添彩.在浏览到一些奇奇怪怪的劲爆视频时,希望保存在硬盘里供日后慢慢品鉴

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

对于爬虫工程师

  • 公司数据需求

  • 数据分析

  • 智能产品练习数据

2. 爬虫与Python

爬虫一定要用Python么? 非也~用Java也行,C也可以。请各位记住,编程语言只是工具.抓到数据是你的目的用什么工具去达到你的目的都是可以的。和吃饭样,可以用叉子也可以用筷子,最终的结果都是你能吃到饭。那为什么大多数人喜欢用Python呢? 答案:因为Python写爬虫简单。不理解? 问:为什么吃米饭不用刀叉? 用筷子? 因为简单好用!

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

3. 爬虫合法吗?

首先,爬虫在法律上是不被禁止的。也就是说法律是允许爬虫存在的但是,爬虫也具有违法风险的就像菜刀一样,法律是允许菜刀的存在的。但是你要是用来砍人,那对不起,没人惯着你就像王欣说过的,技术是无罪的。主要看你用它来干嘛比方说有些人就利用爬虫+一些黑客技术每秒钟对着bb撸上十万八千次那这个肯定是不被允许的。

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

  • 善意的爬虫:不破坏被爬取的网站的资源 (正常访问,一般频率不高,不窃取用户隐私)
  • 恶意的爬虫:影响网站的正常运营 (抢票,秒杀疯狂solo网站资源造成网站宕机)

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

4. 爬虫的矛与盾

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

反反爬策略:爬虫程序可以通过制定相关的策略或者技术手段,破解门户网站中具备的反爬机制,从而可以获取户网站中相关的数据。个人建议:别强行反反爬,可能会已经涉及恶意爬虫=

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

在这里插入图片描述

5. 爬虫原理图 and 流程图

爬虫原理图:

在这里插入图片描述

爬虫流程图:

在这里插入图片描述

二、相关技术介绍

1. HTML 与 CSS

(1)HTML全称 “超文本标记语言",与程序设计语言有所区别,无逻辑结构,采用标记方式进行网页构建,使用<>将标记括起来
在这里插入图片描述

HTML标签如下:

标签名说明
<p>段落标记
<a>超链接
href超链接地址
<img>图片
src图片存放路径
<span>行内标签
<li>列表项
<div>划分HTML块
<table>表格标记
<tr>行标记
<td>列标记
h1~h6标题

(2)CSS基础

  • 层叠样式表
  • 控制HTML页面的样式和布局
  • 使用{}将样式定义括起来

CSS选择器:

  • 元素选择器(了解):元素选择器根据元素名称来选择HTML元素
    在这里插入图片描述
  • id选择器(重要):使用HTML元素的id属性来选择唯一特定元素
    在这里插入图片描述
  • 类选择器(非常重要)选择有特定class属性的HTML元素
    在这里插入图片描述
  • 案例(选中标题):先找到div class='p12',在取下面a标签下的文字即可
    在这里插入图片描述

2. URL网址解释

案例网址https://baike.baidu.com/item/%E8%99%8E/865?fromtitle=%E8%80%81%E8%99%8E&fromid=65781

URL(网址)是Uniform Resource Locator的简写,统一资源定位符。URL由以下几部分组成:

  • 1、协议的类型。如:https
  • 2、主机名称/域名。如:baike.baidu.com
  • 3、端口号
  • 4、查找路径。如:865?
  • 5、查询参数(为后所有内容)。如:fromtitle=%E8%80%81%E8%99%8E&fromid=65781,采用键值对形式,多个键值对用&隔开
  • 6、锚点,前端用来做面定位的。现在一些前后端分离项目,也用锚点来做导航
    • 前端定位:https://baike. baidu.com/item/*E5488%98%E8%8BKA5%E8%88%B1#2
    • 锚点导航:动的是#之后的内容,根据错点去请求数据 https://music.163.com/#/friend

3. HTTP 与 HTTРS

HTTP协议:全称是HyperText Transfer Protocal ,中文意思是超文本传输协议,是一 种发布和接收HTML (HyperText Markuup Language)页面的方法。服务器端口号为:80

HTTPS协议:全称: Hyper Text Transfer Protocol over SecureSocket Layer,是 HTTP协议的加密版本,在HTTP下加入了SSL层, 服务器端口号是:443

更多知识点参考图解网络协议

(1)常见请求方式

http协议规定了浏览器与服务器进行数据交互的过程中必须要选择一种交互的方式。在HTTP协议中,定义了八种请求方式,常见的有get请求与post请求。

GET请求:一般情况下,只从服务器获取数据下来,并不会对服务器资源产生任何影响的时候会使用get请求

在这里插入图片描述

POST请求:向服务器发送数据(登录)、、上传文件等,会对服务器资源产生影响的时候会使用Post请求。请求参数在 Form Data

在这里插入图片描述

(2)常见请求头

http协议中,向服务器发送-一个请求,数据分为三部分

  • 第一个是把数据放在urI中
  • 第二个是把数据放在body中(post请求时)
  • 第三个就是把数据放在head中

常见的请求头参数(非常重要)

  • user-agent:浏览器名称
  • referer:表明当前这个请求是从哪个url过来的
  • Host:主机地址
  • cookie(如果上面的都不行可以试试加上cookie):http协议是无状态的。也就是同一个人发送了两次请求。服务器没有能力知道这两个请求是否来自同一个人。而带上cookie就识别为登录过的用户或者同一个请求两次

(3)常见请求状态码

  • 200:请求正常,服务器正常的返回数据
  • 301:永久重定向。比如访问 http://www.360buy.com (京东以前的网址)的时候会重定向到:https://www.jd.com/
  • 404:请求的url在服务器 上找不到,换句话说就是请求的url错误.
  • 418:发送请求遇到服务器端反爬虫,服务器拒绝响应数据
  • 500:服务器内部错误,可能是服务器出现了bug

4. Chrome浏览器分析网站

打开谷歌浏览器:右键 - 》 检查

  • Elements:可以帮助我们分析网页结构,获取我们想要的数据
  • Console控制台:打印输出网站的一-些信息,比如说网站的招聘信息
  • Sources:相当于一个文件夹一样,加载这个网页所需要的所有的源文件,除了Elements的源代码之外,还有一些CSS文件、JS文件等。
  • Network:查看整个网页发送的所有网络请求。一般我们想要去查看某- 个请求的信息,都可以到这里面去看

在这里插入图片描述

5. Session与Cookie

Session与Cookie是用于保持HTTP长时间连接状态的技术

Session

  • Session代表服务器与浏览器的一次会话过程。
  • Session是一 种服务器端的机制,Session对象用来存储特定用户会话所需的信息。
  • Session由服务器端生成,保存在服务器的内存、缓存、硬盘或数据库中。

在这里插入图片描述
Cookie:是由服务端生成后发送给客户端(通常是浏览), Cookie总 是保
存在客户端

Cookie的基本原理

  • 1、创建Cookie
  • 2、设置存储Cookie
  • 3、发送Cookie
  • 4、读取Cookie

6. Ajax请求

  • Ajax在浏览器与Web服务器之间使用异步数据传输。这样就可以使网页从服务器请求少量的信息,而不是整个页面。

  • Ajax技术独立于浏览器和平台。

  • Ajax一般返回的是JSON,直接对Ajax地址进行Post或get,就返回JSON数据了

  • 判断是否为Ajax生成数据,看在滚动网页的时候是否发生了刷新,如果页面没有刷新说明数据自动生成,就是Ajax渲染到界面上的

在这里插入图片描述

  • 109
    点赞
  • 229
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 123
    评论
函数是一段封装了特定功能的代码块,可以重复调用。无论是编写程序还是解决问题,函数都是非常重要的工具。了解并熟练使用函数对于精通Python的基础来说十分重要。 在Python中,函数的定义以关键字"def"开头,后面是函数的名称和参数列表。参数列表用于接收调用函数时传递的参数。在函数体内部,通过缩进来组织函数代码,并使用return语句返回函数的结果。 函数的优势体现在以下几个方面: 1. 代码的重用性:可以将一段常用的代码封装成函数,以便在其他地方重复使用,提高了代码的可读性和可维护性。 2. 简化程序结构:函数可以将复杂的问题分解为多个简单的小问题,使程序结构更加清晰,易于理解和修改。 3. 提高代码的可测试性:函数是模块化的单元,可以独立测试和验证,减少了程序出错的可能性。 在编写函数时,要注意以下几点: 1. 函数名称要有意义,能够表达函数的功能。 2. 参数列表可以根据需要进行定义,可以有多个参数,也可以没有参数。 3. 函数的代码要尽量简洁、清晰,避免冗余和重复的部分。 4. 在函数内部,可以使用局部变量来保存中间结果,避免对全局变量的过多依赖。 总之,函数是编程中不可或缺的组成部分,掌握了函数的使用,就掌握了解决问题的利器。在后续的学习中,我们将进一步学习函数的高级应用,如函数的递归调用、函数的参数传递等。通过不断的实践和练习,相信不久的将来,我们就能够精通Python的基础

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 123
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁袁袁袁满

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值