爬虫的四个步骤

0.获取数据——爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。
1.解析数据——爬虫程序会把服务器返回的数据解析成我们能读懂的格式。
2.提取数据——爬虫程序再从中提取出我们需要的数据。
3.储存数据——爬虫程序把这些有用的数据保存起来。

获取数据——requests库

requests库可以帮我们下载网页源代码、文本、图片甚至是音频。
“下载”本质上是向服务器发送请求并得到响应。
函数:requests.get()
requests.get(‘URL’)
#requests.get是在调用requests库中的get()方法,它向服务器发送一个请求,括号里的参数是你需要的数据所在的网址,然后服务器对请求作出响应。我们把这个响应返回的结果赋值在变量res上。
#res = requests.get(‘URL’)。res是一个对象,属于requests.models.response类。

Response对象的常用属性

         属性                                               作用

response.status_code 检查请求是否成功
response.content 把response对象转换为二进制数据
response.text 把response对象转换为字符串数据
response.encoding 定义response对象的编码

1.response.status_code
print(res.status_code)
#打印变量res的响应状态码,以检查请求是否成功。
#print(变量.status_code)是用来检查请求是否正确响应,如果终端结果显示了200,这个数字代表服务器同意了请求,并返回了数据给我们。

常见响应状态码解释
响应状态码 说明
1xx 请求收到
2xx 请求成功
3xx 重定向
4xx 客户端错误
5xx 服务器端错误
100 继续提出请求
200 成功
305 应使用代理访问
403 禁止访问
503 服务不可用

2.response.content
这个属性能把response对象的内容以二进制数据的形式返回,使用于图片、音频、视频的下载。
eg:

import requests
res = requests.get('https://n1-q.mafengwo.net/s11/M00/FD/32/wKgBEFt70WSAGDenAAQ1h-DCqHc20.jpeg?imageView2%2F2%2Fw%2F680%2Fq%2F90')
#发出请求,并把返回的结果放在变量res中
pic=res.content
#把Reponse对象的内容以二进制数据的形式返回
#把图片、音频、视频转换成二进制的字节进行传输和存储
photo = open('C:/Users/ASUS/Desktop/photo.jpg','wb')
#新建了一个文件photo.jpg,这里的文件加了存储路径,它会被保存在我所设置的桌面上。(如果文件没加路径,它会被保存在程序运行的当前目录下。)
#图片内容需要以二进制wb读写(在学习open()函数时会有接触)
photo.write(pic)
#获取pic的二进制内容
photo.close()
#关闭文件

open()函数中r、rb、w、wb、a、ab
“r”—— 以读方式打开,只能读文件 ,如果文件不存在,会发生异常。
“w”——以写方式打开,只能写文件, 如果文件不存在,创建该文件并写入;如果文件已存在,先清空,再打开文件从头写入。
“a”—— 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
“rb”——以二进制读方式打开,只能读文件 , 如果文件不存在,会发生异常
“wb”——以二进制写方式打开,只能写文件, 如果文件不存在,创建该文件并写入;如果文件已存在,先清空,再打开文件并写入。
“ab”——以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
“r+”——打开一个文件用于读写。文件指针将会放在文件的开头。
“rb+”——以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于**非文本文件图片等。
“w+”——打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
“wb+”——以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
“a+”——打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于追加。
“ab+”——以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于追加。

3.response.text
这个属性可以把Response对象的内容以字符串的形式返回,适用于文字、网页源代码的下载。
eg:

import requests
#引用requests库
res=requests.get('URL')
novel=res.text
#把Response对象的内容以字符串的形式返回
k = open('《xxxx》.txt','w')
#创建一个名为《xxxx》的txt文档,并写入
k.write(novel)
#写进文件中
k.close()
#关闭文档

4.response.encoding
res.encoding=‘gbk’ #定义Response对象的编码为gbk
目标数据本身是什么编码是未知的。用requests.get()发送请求后,我们会取得一个Response对象,其中,requests库会对数据的编码类型做出自己的判断。但是!这个判断有可能准确,也可能不准确。
如果它判断准确的话,我们打印出来的response.text的内容就是正常的、没有乱码的,那就用不到res.encoding;如果判断不准确,就会出现一堆乱码,那我们就可以去查看目标数据的编码,然后再用res.encoding把编码定义成和目标数据一致的类型即可。

Python爬虫笔记——爬虫基础第一课相关推荐

  1. Python基础第一课

    全部都重要 github博客传送门 博客园传送门 Python基础课 如何下载安装Python Python基础第一课 Python基础第二课 Python基础第三课 Python基础第四课 没了. ...

  2. 数字图像处理与Python实现笔记之基础知识

    数字图像处理与Python实现笔记之基础知识 摘要 绪论 1 数字图像处理基础知识 1.1 数字图像简介 1.1.1 数字图像处理的目的 1.1.2 数字图像处理的应用 1.1.3 数字图像处理的特点 ...

  3. Python学习笔记_1_基础_2:数据运算、bytes数据类型、.pyc文件(什么鬼)

    Python学习笔记_1_基础_2:数据运算.bytes数据类型..pyc文件(什么鬼) 一.数据运算 Python数据运算感觉和C++,Java没有太大的差异,百度一大堆,这里就不想写了.比较有意思 ...

  4. 计算机应用技术第一课,计算机应用基础(第一课).ppt

    计算机应用基础(第一课) 目 录 上一页 下一页 退 出 第 * 张幻灯片 目 录 上一页 下一页 退 出 第 * 张幻灯片 目 录 上一页 下一页 退 出 第 * 张幻灯片 目 录 上一页 下一页 ...

  5. 计算机应用技术第一课,计算机应用基础(第一课)

    <计算机应用基础(第一课)>由会员分享,可在线阅读,更多相关<计算机应用基础(第一课)(22页珍藏版)>请在人人文库网上搜索. 1.教学课件,计算机应用基础,目 录,课程说明, ...

  6. python 图像分析自然纹理方向与粗细代码_数字图像处理与Python实现笔记之基础知识...

    数字图像处理与Python实现笔记之基础知识 摘要 绪论 1 数字图像处理基础知识 1.1 数字图像简介 1.1.1 数字图像处理的目的 1.1.2 数字图像处理的应用 1.1.3 数字图像处理的特点 ...

  7. 如何上好计算机应用基础第一课,计算机应用基础(第一课).pptx

    计算机应用基础(第一课).pptx (22页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 教学课件计算机应用基础 目 录课程说明模块1 ...

  8. 潭州课堂25班:Ph201805201 爬虫基础 第一课 (课堂笔记)

    爬虫的概念: 其实呢,爬虫更官方点的名字叫数据采集,英文一般称作spider,就是通过编程来全自动的从互联网上采集数据. 比如说搜索引擎就是一种爬虫. 爬虫需要做的就是模拟正常的网络请求,比如你在网站 ...

  9. Python学习笔记——爬虫原理与Requests数据抓取

    目录 为什么要做网络爬虫? 通用爬虫和聚焦爬虫 HTTP和HTTPS 客户端HTTP请求 请求方法 HTTP请求主要分为Get和Post两种方法 常用的请求报头 1. Host (主机和端口号) 2. ...

  10. Python学习笔记——爬虫之urllib数据抓取

    目录 urllib库的基本使用 Get方式 POST方式: 获取AJAX加载的内容 Handler处理器 和 自定义Opener urllib库的基本使用 所谓网页抓取,就是把URL地址中指定的网络资 ...

最新文章

  1. 在Windows7 下 mingw32 开发环境中采用 glut3.7 学习 OpenGL
  2. BZOJ 1040 ZJOI2008 骑士 树形DP
  3. python-django框架中使用docker和elasticsearch配合实现搜索功能
  4. 滑动窗口,拥塞控制算法
  5. 屏幕的遮挡层,js得到屏幕宽高、页面宽高 (window.screen.availHeight)等--
  6. node:爬虫爬取网页图片
  7. css p 文本不换行,超出文字显示省略号
  8. linu - 系统延时与定时任务
  9. 相机标定中部分疑问和注意事项
  10. 网站开发流程以及HTML5简介(七)
  11. 如何求两个矢量间的夹角
  12. 字节面试算法题:用集合中的数凑小于target的最大数(Java实现,各类用例均通过)
  13. 微信注册验证成功之后不跳转_微信小号怎么申请(绑定了微信的手机号怎么注册新的微信)...
  14. WordPress个人博客Cosy3.1.3主题+积木部分插件
  15. 打破数据围墙 加速金融创新
  16. WINCC软件与西门子PLC以太网通讯
  17. windows10配置Docker容器独立IP地址互相通信
  18. 数据结构——拉链法(链地址法)
  19. 广西大学计算机仿真实验,计算机仿真(matlb)实验一(广西大学电气).doc
  20. sourcetree使用

热门文章

  1. C语言练习之计算存款利息
  2. 怨念主题第2作~粉红色超级女人vista主题
  3. 数据挖掘-Task5:模型融合
  4. CodeForces 25BPhone numbers(简单的字符串模拟题目)
  5. Mysql之IN 和 Exists 用法
  6. Tensorflow实现DBN
  7. 开放源码的微微信.NET 0.8 版发布了
  8. 如何使用eeglab画出理想的脑电图
  9. 对数化绘制P值地形图
  10. 中计算散度的函数_深度神经网络优化中的不可导函数如何计算梯度?