通过

python爬虫入门:什么是爬虫,怎么玩爬虫?

我们知道了什么是爬虫

也知道了爬虫的具体流程

那么在我们要对某个网站进行爬取的时候

要对其数据进行分析

就要知道应该怎么请求

就要知道获取的数据是什么样的

所以我们要学会怎么抓咪咪!

哦,不对。

我们要学会怎么数据抓包

 

虽然小馒头也是包的一种

ok...anyway...

打开我们的 Chrome 浏览器

在这里 小帅b 提醒大家一句

尽量不要用国产浏览器

很多是有后门

所以

Chrome 是首选!

ok,打开 Chrome 浏览器之后呢

我们随便输入一个网址吧

比如

www.pornhub.com

营养跟不上?那就...

输入一个人人都能上的网站

www.baidu.com

用力回车

一个熟悉的页面显示在你的面前

这个时候,你按下 F12

你可以看到弹出一个有点装逼的窗口

这个玩意

正是我们想要的

可以看到

Element 标签下对应的 HTML 代码

其实就是这个网页的代码

我们可以在这里除了看看它的代码之外

我们还可以修改一些东西

比如我把这个按钮改成小帅b

按下回车

是不是瞬间逼格满满

哦,不好意思

今天不是要说怎么装逼的

我们点击 Network 这个标签

然后刷新一下

可以看到有很多的请求

HTTP 的请求方式有好几种

GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE

不过最常见的就是 GET 和 POST 请求

咱们就一一说道说道

接下来就是

学习 python 的正确姿势

 

 

 

我们直接搜索「苍老师

然后我们就可以发现

有好多请求

这些都是 GET 请求

我们随便点击一个请求进去

可以看到我们的请求URL

https://www.baidu.com/s?wd=%E8%8B%8D%E8%80%81%E5%B8%88&rsv_spt=1&rsv_iqid=0xad707ee600011b25&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&rqlang=cn&tn=baiduhome_pg&rsv_enter=0&oq=%25E8%258B%258D%25E8%2580%2581%25E5%25B8%2588&rsv_t=5d8eqNDy4ZpyUOz7ByzyIMYfH5Jc7861dr4CFQaY3WCiDnOpBLob6Eouk23%2F3L%2BTD46O&rsv_sug3=15&rsv_pq=996e776f0000df06&rsv_sug4=19123

在 ?后面的这些 jb 玩意儿

就是 GET 请求的参数

这些参数以「键值对」的形式实现

比如这里的

wd=%E8%8B%8D%E8%80%81%E5%B8%88

就是告诉百度

我们要查询的是苍老师相关的内容

这种方式的请求方式是最简单的

所以以后我们在 Python 写 GET 请求的时候

直接在 URL 后面加个 ?然后添加参数值就好了

比如

我要百度搜索波多野结衣

那么就是

https://www.baidu.com/s?wd=波多野结衣

不信你直接在浏览器这样搜

是一毛一样的

那么,啥是 POST 请求呢?

我们在做一些信息提交的时候

比如注册,登录

这时候我们做的就是 POST 请求

POST 的参数不会直接放在 URL 上

会以 Form 表单的形式将数据提交给服务器

我们来登录一下百度

当我们点击登录的时候

就开始将我们的账号密码请求给百度服务器

可以看到我们请求了 login 这个接口

请求方法就是 POST

而我们的请求参数是以 Form 表单的方式提交的

拉到下面就可以看到

username 就是 xiaoshuaib

而密码,就是被加密了的

这些都是 POST 参数

可以发现

GET请求把请求参数都暴露在URL上

而POST请求的参数放在request body 里面

POST请求方式还对密码参数加了密

这样就相对安全一些

ok

你已经了解请求方式了

接下来说说请求头

 

 

 

当然说的不是上面这个 gou 头哈

我们刚刚在访问百度的时候

可以看到这个玩意

这个就是请求头

Request Header

我们在做 HTTP 请求的时候

除了提交一些参数之外

我们还有定义一些 HTTP 请求的头部信息

比如 Accept、Host、cookie、User-Agent等等

这些参数也是我们在做爬虫要用到

通过这些信息,欺骗服务器,告诉它我们是正规请求

比如

我们可以在代码里面设置 cookie 告诉服务器我们就是在这个浏览器请求的会话

User-Agent 告诉服务器我们是浏览器请求的

说完我们这边的请求了

接着我们再说说服务器的响应

你一定遇到过 404 页面吧

或者服务器错误返回个 502 吧

这些 404 啊,200啊,301啊,502啊

都是服务器的响应码

一般服务器给我们返回 200

那就说明

我们成功请求了

再来说说响应头

当我们请求成功之后

服务器会给我们返回响应码之外

还有响应头

这个头主要是告诉我们数据以什么样的形式展现

告诉我们cookie的设置

还有一个

就是响应体

说白了,就是服务器返回给我们的数据

我们点击 Response 就可以看到相关的数据了

看,这些就是服务器返回给我们的 HTML 源代码

对于不同的请求

我们获取到的数据是不一样的

除了 HTML的,也有 JSON 的

图片二进制数据等等

可以针对不同的情况

用不同的手段来解析这些数据

说到这里

想必你已经会在 Chrome 抓包

所谓抓包

就是我们摸清了浏览器里面的套路

知道它是怎么搞的

那么通过我们的请求

GET 请求也好

POST 请求也罢

只要知道请求方式

只要知道请求参数

只要知道请求头定义

只要知道怎么拿到返回的数据

这..

对我们来说

爬虫还难么?

完了!

爽吗?

那还不把这个公众号设置为「星标」?

那还不转发?

那还不点好看?

那就赶紧扫一扫

加入pythonner的聚集地

我们一起从装逼到牛逼

近期文章

对不起,我不应该出轨的!

python爬虫入门:什么是爬虫,怎么玩爬虫?

学习python的正确姿势

python爬虫入门01:教你在 Chrome 浏览器轻松抓包的更多相关文章

  1. Python爬虫-02:HTTPS请求与响应,以及抓包工具Fiddler的使用

    目录 1. HTTP和HTTPS 1.1. HTTP的请求和响应流程:打开一个网页的过程 1.2. URL 2. 客户端HTTP请求 3. Fiddler抓包工具的使用 3.1. 工作原理 3.2. ...

  2. Python爬虫入门教程 21-100 网易云课堂课程数据抓取

    写在前面 今天咱们抓取一下网易云课堂的课程数据,这个网站的数据量并不是很大,我们只需要使用requests就可以快速的抓取到这部分数据了. 你第一步要做的是打开全部课程的地址,找出爬虫规律, 地址如下 ...

  3. Python爬虫入门教程 19-100 51CTO学院IT技术课程抓取

    写在前面 从今天开始的几篇文章,我将就国内目前比较主流的一些在线学习平台数据进行抓取,如果时间充足的情况下,会对他们进行一些简单的分析,好了,平台大概有51CTO学院,CSDN学院,网易云课堂,慕课网 ...

  4. Python爬虫入门教程 18-100 煎蛋网XXOO图片抓取

    写在前面 很高兴我这系列的文章写道第18篇了,今天写一个爬虫爱好者特别喜欢的网站煎蛋网http://jandan.net/ooxx,这个网站其实还是有点意思的,网站很多人写了N多的教程了,各种方式的都 ...

  5. Python爬虫入门教程 23-100 石家庄链家租房数据抓取

    1. 写在前面 作为一个活跃在京津冀地区的开发者,要闲着没事就看看石家庄这个国际化大都市的一些数据,这篇博客爬取了链家网的租房信息,爬取到的数据在后面的博客中可以作为一些数据分析的素材. 我们需要爬取 ...

  6. python爬虫入门02:教你通过 Fiddler 进行手机抓包

    哟~哟~哟~ hi起来 everybody 今天要说说怎么在我们的手机抓包 通过 python爬虫入门01:教你在Chrome浏览器轻松抓包 我们知道了 HTTP 的请求方式 以及在 Chrome 中 ...

  7. 转 Python爬虫入门三之Urllib库的基本使用

    静觅 » Python爬虫入门三之Urllib库的基本使用 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器 ...

  8. 【爬虫入门01】我第一只由Reuests和BeautifulSoup4供养的Spider

    [爬虫入门01]我第一只由Reuests和BeautifulSoup4供养的Spider 广东职业技术学院  欧浩源 1.引言  网络爬虫可以完成传统搜索引擎不能做的事情,利用爬虫程序在网络上取得数据 ...

  9. Python爬虫入门之Urllib库的高级用法

    1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...

随机推荐

  1. 原生JavaScript之深度克隆

    先看一下克隆成功后的结果 深度克隆就是将obj的属性克隆到obj1上面,并且在obj上面修改属性不影响obj1上面的属性. 1.先把所有的值都遍历一遍(看是引用值和原始值)用for ( var pro ...

  2. linux 文件查阅 cat、more、less、tail

    文件内容查阅1.cat由第一行开始显示文件内容2.tac:从最后一行开始显示,可以看出tac是cat的倒写形式.3.nl:显示的时候,顺便输出行号;4.more:一页一页地显示文件内容5.less:与 ...

  3. Qt事件系统之二:鼠标事件和滚轮事件

    在Qt中,事件作为一个对象,继承自 QEvent 类,常见的有键盘事件 QKeyEvent.鼠标事件 QMouseEvent 和定时器事件 QTimerEvent 等,与 QEvent 类的继承关系图 ...

  4. 434 Number of Segments in a String 字符串中的单词数

    统计字符串中的单词个数,这里的单词指的是连续的非空字符.请注意,你可以假定字符串里不包括任何不可打印的字符.示例:输入: "Hello, my name is John"输出: 5 ...

  5. SpringIOC学习_属性注入(依赖注入)

    一.应用场景:Spring会帮创建实现类的实例,但是有时候我们还需要在类中设置一些属性用于传入设置值,这些跟类紧密关联的属性就叫依赖,通过spring帮忙设置的过程叫依赖注入. 二.依赖注入的实现 A ...

  6. Vue.js学习笔记--1.基础HTML和JS属性的使用

    整理自官网教程 -- https://cn.vuejs.org/ 1. 在HTML文件底部引入Vue <script src="https://cdn.jsdelivr.net/npm ...

  7. 51全志R58平台Android4.4下Camera的HAL层修改

    51全志R58平台Android4.4下Camera的HAL层修改 2018/11/7 15:20 版本:V1.0 开发板:SC5806 1.系统编译: (略) 2.全志R58平台Android4.4 ...

  8. nginx负载均衡浅析

    熟悉Nginx的小伙伴都知道,Nginx是一个非常好的负载均衡器.除了用的非常普遍的Http负载均衡,Nginx还可以实现Email,FastCGI的负载均衡,甚至可以支持基于Tcp/UDP协议的各种 ...

  9. 迅为嵌入式4418/6818开发板QT-HDMI显示

    本文转自迅为论坛:http://www.topeetboard.com 平台:迅为4418/6818开发平台 1.首先请确认下光盘资料的日期(只有20171120及以后更新的光盘支持QT HDMI显示 ...

  10. Jmeter重要组件介绍(一)

    一.常用的取样器 二.常用的逻辑控制器 三.前置处理器 四.后置处理器 五.断言 六.定时器 七.配置元件 八.监听器