为何要先说Requests库呢,由于这是个功能很强大的网络请求库,能够实现跟浏览器同样发送各类HTTP请求来获取网站的数据。网络上的模块、库、包指的都是同一种东西,因此后文中可能会在不一样地方使用不一样称谓,不要迷惑哦。html
结合一个实例来说解吧。个人一个设计师小伙伴常去一些设计类网站收集素材,其中有个网站Unsplash里面美图特别多,因此想要把里面的图片都保存下来,这样我们的小爬虫就登场了。说干就干,赶忙开始吧。python
先来准备环境api
Python版本
我电脑装了好多个Python版本(学一个装一个。。。),不过推荐使用Anaconda这个科学计算版本,主要是由于它自带一个包管理工具,能够解决有些包安装错误的问题。去Anaconda官网,选择Python3.5版本,而后下载安装。浏览器
IDE
我使用的是PyCharm,是专门为Python开发的IDE。这是JetBrians的产品,点我下载。服务器
使用Anaconda 版本的得小伙伴儿:用管理员权限运行cmd命令窗口,而后输入
conda install requests
网络
看动图:工具
直接使用Python3.5的小伙伴儿输入这个命令:
pip install requests
post
若是你机器上存在多个Python版本,要给Python3.5的版本安装requests库,须要输入如下命令:
py -3 -m pip install requests
网站
好啦,requests库安装完毕,接下来咱们会在实际例子中演示它的使用。想要深刻了解requests模块的小伙伴也能够仔细阅读英文官方文档,和中文官方文档,若是用到该文没有提到的功能,则查看文档便可。ui
首先咱们打开PyCharm,须要选择一下它的页面主题。选择你喜欢的风格,以及选择使用的Python版本。而后打开一个你想要存放爬虫的目录,进入后长这样。
咱们再建立一个python文件,输入第一行代码来导入requests库:
import requests #导入requests库
而后用它来获取我们的目标网页:
r = requests.get('https://unsplash.com') #像目标url地址发送get请求,返回一个response对象 print(r.text) #r.text是http response的网页HTML
在菜单栏点击“Run”,选择该文件(或者直接在窗口中点击右键,运行该文件):
执行完以后,底部会出现输出结果:
能够看到底部是获取到的网页内容。这就完成了爬虫的第一步,获取到了网页的HTML内容。
怎么样,很简单吧。
这只是用到了requests库的get请求,还有其余的请求使用也与之相似。下面咱们简单介绍一下每一个请求的用法。
由于有中文的官方文档,我就不介绍全部的功能了,只把经常使用到的说一下,你们用到更多功能的时候再去翻官方文档吧。
requests 库就是用来发送各类请求的,因此,咱们就来看看各类请求怎么使用:
r = requests.get("https://unsplash.com")
这就是咱们刚刚用到的。其实就是向网站发送了一个get请求,而后网站会返回一个response。r 就是response。你们能够在运行的时候查看r的type。
print(type(r))
get请求还能够传递参数:
payload = {'key1': 'value1', 'key2': 'value2'} r = requests.get("http://httpbin.org/get", params=payload)
上面代码向服务器发送的请求中包含了两个参数key1和key2,以及两个参数的值。实际上它构形成了以下网址:
http://httpbin.org/get?key1=value1&key2=value2
无参数的post请求:
r = requests.post("http://httpbin.org/post")
有参数的post请求:
payload = {'key1': 'value1', 'key2': 'value2'} r = requests.post("http://httpbin.org/post", data=payload)
post请求多用来提交表单数据,即填写一堆输入框,而后提交。
其余一些请求例如put请求、delete请求、head请求、option请求等其实都是相似的。可是平时用的很少,就不仔细介绍了。有用到的能够去看官网文档哦。阅读官方文档是必备技能!
r = requests.put("http://httpbin.org/put") r = requests.delete("http://httpbin.org/delete") r = requests.head("http://httpbin.org/get") r = requests.options("http://httpbin.org/get")
咱们刚才用requests库发送http请求得到了网页的HTML内容,那么应该如何从HTML中得到图片呢?
BeautifulSoup库就此登场啦,赶快去看一下篇来了解它的用法吧。