Python 爬虫基础(1)

在网页上搜索需要的信息,浏览器交流的对象不只有我们,还有服务器,服务器就类似于一个超级电脑,它可以计算和存储大量数据,并且在互联网中相互传输数据。

爬取数据的步骤:

  1. 首先,在浏览器上输入网址(URL),浏览器向服务器传达了我们想要访问某个网页的需求,这个过程叫做【请求】,紧接着,服务器把我们想要访问的网站数据发送给浏览器,这个过程叫做【响应】

    所以浏览器和服务器之间,先请求,后响应,有这么一层关系。

在这里插入图片描述

  1. 当服务器把数据响应给浏览器之后,浏览器并不会把数据丢给我们,因为这些数据是用计算机的语言写的,浏览器还要把这些数据翻译成我们看得懂的样子,这是浏览器做的另一项工作【解析数据】。
  2. 拿到的数据中,挑选出对我们有用的数据,这是【提取数据】。
  3. 最后把这些有用的数据保存好,这是【存储数据】。

总结:
. 获取数据(爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。)
. 解析数据(爬虫程序会把服务器返回的数据解析成我们能读懂的格式。二进制或字符串等等)
. 提取数据(爬虫程序再从中提取出我们需要的数据。)
. 存储数据 (爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析)

爬虫的工作原理:
在这里插入图片描述

爬虫代码详细介绍:

获取数据之前先安装好requests库,requests库可以帮我们下载网页源代码,文本,图片,甚至是音频,下载本质上是向服务器发送请求并得到响应。

requests.get()

具体用法:

import requests
#引入requests库
res = requests.get('URL')
#requests.get是在调用requests库中的get()方法,它向服务器发送了一个请求,括号里的参数是你需要的数据所在的网址,然后服务器对请求作出了响应。
#我们把这个响应返回的结果赋值在变量res上。

在这里插入图片描述

import requests 
res = requests.get('https://res.pandateacher.com/2018-12-18-10-43-07.png') 
print(type(res))
#打印变量res的数据类型

运行结果:
在这里插入图片描述

可以看到这里的res其实是类,它是requests.models.Response的类,它也有几个方法
在这里插入图片描述

  1. response.status_code 检查请求是否成功
import requests 
res = requests.get('https://res.pandateacher.com/2018-12-18-10-43-07.png') 
print(res.status_code)
#打印变量res的响应状态码,以检查请求是否成功

运行结果:
在这里插入图片描述
(显示了200,这个数字代表服务器同意了请求,并返回了数据给我们)

在这里插入图片描述

在这里插入图片描述

  1. response.content把response对象转换为二进制数据的形式返回,适用于图片,音频,视频的下载
import requests
res=requests.get('URL')
#发送请求,并把返回的结果放在变量res中
pic=res.content
#把response对象以二进制数据的形式返回
photo=open('ppt.jpg','wb')
#新建了一个文件ppt.jpg
#图片内容需要以二进制wb写入
photo.write(pic)
#获取pic的二进制内容
photo.close()
  1. response.text把response对象转换为字符串数据的形式返回,适用于文字,网页源代码的下载。
import requests
#引用requests库
res=requests.get('URL')
#下载文章,得到一个对象,被命名为res
novel=res.text
#把response对象的内容以字符串的形式返回
print(novel[:800])
#只打印小说的一部分

把下载的文本写入本地文件里面:

import requests
res=requests.get('URL')
novel=res.text
k=open('小说.txt','a+')
#以追加的形式打开一个文件
k.write(novel)
k.close
#关闭文档
  1. response.encoding定义response对象的编码,有时候下载东西到本地会出现乱码,这表示网页编写的编码跟我们编写的编码格式不一样,这种时候需要指定编码格式,跟网页保持一直
res=requests.get(''URL)
res.encoding='gbk'
#这个地方还是乱码的话,那就试试UTF-8
novel=res.text
print(novel[:800])

Robots 协议是互联网爬虫的一项公认的道德规范,它的全称是“网络爬虫排除标准”,通过这个协议可以知道哪些页面是可以爬取的,哪些是不可以的。

在网站的域名后面加上 /robots.txt 就可以

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值