python从入门到精通---------爬虫的学习

1.什么是爬虫

爬虫,从本质上来说,就是利用程序在网上拿到对我们有价值的数据

2.爬虫的工作原理

 

3.爬虫的步骤

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

用图片这是:

 

4.体验爬虫

requests.get()

# 引入requests库
import requests

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

爬虫的类:

我们所以type来看一下res的类型

import requests 

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

我们发现了res是一个对象,属于requests.models.Response类。好,既然已经知道res是一个Response对象了,我们也就可以去了解它的相应属性和方法了。

5.Response对象

response一共有4类

 

1.response.status_code

import requests 

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

 

出现了200的状态码,它表示成功了

其他情况的状态码如图所示:

2.response.content

主要作用与图片的下载:

先下载一张提神醒脑图吧!网址:https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=61273508,3612490239&fm=26&gp=0.jpg

我们所以爬虫把它下载下来吧!

​
# 引入requests库
import requests

# 发出请求,并把返回的结果放在变量res中
res = requests.get('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1606750678029&di=41cb79de98355b129d4cf07a79782e7d&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fforum%2Fw%3D580%2Fsign%3D8b777317d20735fa91f04eb1ae500f9f%2F43f13af5e0fe99259c5eb85c32a85edf8cb17140.jpg')
# 把Reponse对象的内容以二进制数据的形式返回
pic = res.content
# 新建了一个文件ppt.jpg,这里的文件没加路径,它会被保存在程序运行的当前目录下。
# 图片内容需要以二进制wb读写。你在学习open()函数时接触过它。
photo = open('ppt.jpg','wb')
# 获取pic的二进制内容
photo.write(pic) 
# 关闭文件
photo.close()

​

 

3.response.text

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

举个例子:

下载三国演义的网址:https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md

import requests
# 下载《三国演义》第一回,我们得到一个对象,它被命名为sanguo
sanguo=requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')
# 把Response对象的内容以字符串的形式返回
kansanguo=sanguo.text
# print(kansanguo) # 全部打印
print(kansanguo[:500]) # 规定打印字数

 

4.response.encoding

它能帮我们定义Response对象的编码

我们使用response.encoding就可以将内容转化为‘gbk’或‘utf-8’了

1.转化为‘gbk’

# 下载《三国演义》第一回,我们得到一个对象,它被命名为res
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')
# 定义Response对象的编码为gbk
res.encoding='gbk'
# 把Response对象的内容以字符串的形式返回
novel=res.text
# 打印小说的前800个字
print(novel[:800])

2.转化为‘utf-8’

import requests

# 下载《三国演义》第一回,我们得到一个对象,它被命名为res
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')
# 定义Reponse对象的编码为utf-8。
res.encoding='utf-8'
# 把Response对象的内容以字符串的形式返回
novel=res.text
# 打印小说的前800个字。
print(novel[:800])

 

现在我们终于学习了爬虫的第0步了,后面还会有更多的在等待着我们

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值