学习完python语法课后感觉没有被完全打倒,今天有幸再次深入学习。python令我神往的原因有二:爬虫和数据分析。现在慢慢地开始和爬虫来一次亲密接触。
爬虫四步曲
![](https://img.haomeiwen.com/i22887083/3873f682c0ce8f6c.png)
第一步:获取数据
1.需要requests模块来获取数据。windows安装:Win+R打开命令提示符(cmd),输入pip install requests即可。
requests库可以与服务器通过请求及响应帮我们下载网页源代码、文本、图片及音频。
2.导入requests库,调用get()方法
import requests
res=requests.get(url) ###url即获取数据的网址
3.type下res的属性可知,res属于Response类对象。
![](https://img.haomeiwen.com/i22887083/d05cf8ba3a4e6bea.png)
4.认识Response对象的四个属性:
![](https://img.haomeiwen.com/i22887083/1069984cb21ebf73.png)
- 利用res实例对象来查看response类对象的status_code属性:
![](https://img.haomeiwen.com/i22887083/699dc8f661962cd7.png)
status_code属性显示为200。200是res的服务器响应码,了解下其他的响应码:(嗯,现在才晓得平常上网的404的含义了。。。)
![](https://img.haomeiwen.com/i22887083/204f04bd4e10ac9e.png)
- 利用res实例对象来查看response类对象的content属性(获取的响应对象的二进制数据),content属性可把Response对象的内容以二进制数据的形式返回,适用于图片、音频、视频的下载:
import requests
# 发出请求,并把返回的结果放在变量res中
res = requests.get('https://res.pandateacher.com/2018-12-18-10-43-07.png')
# 把Reponse对象的内容以二进制数据的形式返回
pic = res.content
# 新建了一个文件ppt.jpg,这里的文件没加路径,它会被保存在程序运行的当前目录下。
# 图片内容需要以二进制wb读写。你在学习open()函数时接触过它。
photo = open('ppt.jpg','wb')
# 获取pic的二进制内容,本地已保存图片
photo.write(pic)
# 关闭文件
photo.close()
- 利用res实例对象来查看response类对象的text属性(获取的响应对象的字符串数据),显示Response对象的内容以字符串的形式返回,适用于文字、网页源代码的下载:
import requests
# 下载《三国演义》第一回,我们得到一个对象,它被命名为res
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')
# 把Response对象的内容以字符串的形式返回
novel=res.text
# 现在,可以打印小说了,但考虑到整章太长,只输出800字看看就好。在关于列表的知识那里,你学过[:800]的用法。
print(novel[:800])
- Response的response.encoding属性,它能帮我们定义Response对象的编码类型(当文件出现编码时可以重新定义):
import requests
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md') #数据默认编码为utf-8
# 定义Reponse对象的编码为utf-8。
res.encoding='utf-8' ##若为其他编码如'gbk'则会出现乱码
- 总之,获取数据,本质就是通过URL去向服务器发出请求,服务器再把相关内容封装成一个Response对象返回给我们,这是通过requests.get()实现的,而我们获取到的Response对象下有四个常用的属性。
嗯,好了,今天就先到这里吧,明天继续......
网友评论