Python爬虫小白入门(二)requests库

时间:2022-05-09 04:06:12

一、前言


为什么要先说Requests库呢,因为这是个功能很强大的网络请求库,可以实现跟浏览器一样发送各种HTTP请求来获取网站的数据。网络上的模块、库、包指的都是同一种东西,所以后文中可能会在不同地方使用不同称谓,不要迷惑哦。

结合一个实例来讲解吧。我的一个设计师小伙伴常去一些设计类网站收集素材,其中有个网站Unsplash里面美图特别多,所以想要把里面的图片都保存下来,这样咱们的小爬虫就登场了。说干就干,赶紧开始吧。

先来准备环境

二、运行环境


  • 系统版本

    我使用的是Windows10。

    好多小伙伴使用的是Mac,配置上基本相同。由于我多年混迹于微软的开发平台,经常使用Visual Studio、SQL Server啥的,用Windows用习惯了(其实主要是因为Qiong穷!)。所以这个教程我就以Windows系统为例了。

Python爬虫小白入门(二)requests库

  • Python版本

    我电脑装了好多个Python版本(学一个装一个。。。),不过推荐使用Anaconda这个科学计算版本,主要是因为它自带一个包管理工具,可以解决有些包安装错误的问题。去Anaconda官网,选择Python3.5版本,然后下载安装。

  • IDE

    我使用的是PyCharm,是专门为Python开发的IDE。这是JetBrians的产品,点我下载

三、requests 库的安装


使用Anaconda 版本的得小伙伴儿:用管理员权限运行cmd命令窗口,然后输入

conda install requests

看动图:

Python爬虫小白入门(二)requests库

直接使用Python3.5的小伙伴儿输入这个命令:

pip install requests

如果你机器上存在多个Python版本,要给Python3.5的版本安装requests库,需要输入以下命令:

py -3 -m pip install requests

好啦,requests库安装完毕,接下来我们会在实际例子中演示它的使用。想要深入了解requests模块的小伙伴也可以仔细阅读英文官方文档,和中文官方文档,如果用到该文没有提到的功能,则查看文档即可。

四、开工


首先我们打开PyCharm,需要选择一下它的页面主题。选择你喜欢的风格,以及选择使用的Python版本。然后打开一个你想要存放爬虫的目录,进入后长这样。

Python爬虫小白入门(二)requests库

我们再创建一个python文件,输入第一行代码来导入requests库:

import requests #导入requests库

然后用它来获取咱们的目标网页:

r = requests.get('https://unsplash.com') #像目标url地址发送get请求,返回一个response对象
print(r.text) #r.text是http response的网页HTML

在菜单栏点击“Run”,选择该文件(或者直接在窗口中点击右键,运行该文件):

Python爬虫小白入门(二)requests库

执行完之后,底部会出现输出结果:

Python爬虫小白入门(二)requests库

可以看到底部是获取到的网页内容。这就完成了爬虫的第一步,获取到了网页的HTML内容。

怎么样,很简单吧。

这只是用到了requests库的get请求,还有其他的请求使用也与之类似。下面我们简单介绍一下每个请求的用法。

五、requests库的使用


因为有中文的官方文档,我就不介绍所有的功能了,只把常用到的说一下,大家用到更多功能的时候再去翻官方文档吧。

requests 库就是用来发送各种请求的,所以,我们就来看看各种请求怎么使用:

5.1 get 请求

r = requests.get("https://unsplash.com")

这就是我们刚刚用到的。其实就是向网站发送了一个get请求,然后网站会返回一个response。r 就是response。大家可以在运行的时候查看r的type。

print(type(r))

Python爬虫小白入门(二)requests库

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

5.2 POST请求

无参数的post请求:

r = requests.post("http://httpbin.org/post")

有参数的post请求:

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)

post请求多用来提交表单数据,即填写一堆输入框,然后提交。

5.3 其他请求

其他一些请求例如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库就此登场啦,赶快去看一下篇来了解它的用法吧。

Python爬虫小白入门(二)requests库的更多相关文章

  1. Python爬虫利器一之Requests库的用法

    前言 之前我们用了 urllib 库,这个作为入门的工具还是不错的,对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助.入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取.那么这一节来 ...

  2. (转)Python爬虫利器一之Requests库的用法

    官方文档 以下内容大多来自于官方文档,本文进行了一些修改和总结.要了解更多可以参考 官方文档 安装 利用 pip 安装 $ pip install requests 或者利用 easy_install ...

  3. Python爬虫小白入门(四)PhatomJS+Selenium第一篇

    一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉 ...

  4. Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐

    一.前言 前文说过我的设计师小伙伴的设计需求,他想做一个披头士乐队历年专辑的瀑布图. 通过搜索,发现网易云音乐上有比较全的历年专辑信息加配图,图片质量还可以,虽然有大有小. 我的例子怎么都是爬取图片? ...

  5. python爬虫(八) requests库之 get请求

    requests库比urllib库更加方便,包含了很多功能. 1.在使用之前需要先安装pip,在pycharm中打开: 写入pip install requests命令,即可下载 在github中有关 ...

  6. python爬虫(6)--Requests库的用法

    1.安装 利用pip来安装reques库,进入pip的下载位置,打开cmd,默认地址为 C:\Python27\Scripts 可以看到文件中有pip.exe,直接在上面输入cmd回车,进入命令行界面 ...

  7. Python爬虫小白入门(三)BeautifulSoup库

    # 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...

  8. Python爬虫小白入门(一)写在前面

    一.前言 你是不是在为想收集数据而不知道如何收集而着急? 你是不是在为想学习爬虫而找不到一个专门为小白写的教程而烦恼? Bingo! 你没有看错,这就是专门面向小白学习爬虫而写的!我会采用实例的方式, ...

  9. Python爬虫小白入门(一)入门介绍

    一.前言 你是不是在为想收集数据而不知道如何收集而着急? 你是不是在为想学习爬虫而找不到一个专门为小白写的教程而烦恼? Bingo! 你没有看错,这就是专门面向小白学习爬虫而写的!我会采用实例的方式, ...

随机推荐

  1. python——Django(ORM连表操作)

    千呼万唤始出来~~~当当当,终于系统讲了django的ORM操作啦!!!这里记录的是django操作数据库表一对多.多对多的表创建及操作.对于操作,我们只记录连表相关的内容,介绍增加数据和查找数据,因 ...

  2. wamp2.5版本64位403forbidden问题

    使用最新版wamp集成环境的时候,在主机上可以访问localhost,外网访问时遇到了403错误.如下: 这是由于新版wamp默认配置比较严格,出于安全和性能的考虑,这么做是可以理解的. 解决方法为: ...

  3. Linux下编译安装PCRE库

    备注:如果没有root权限,使用 --prefix 指定安装路径 ./configure --prefix=/home/work/tools/pcre-8.xx =================== ...

  4. 了解Objective-C中NSAutoreleasePool使用方法

    本文的目的是来了解Objective-C中NSAutoreleasePool使用方法,Objective-C的Foundation库实际上是种运行级对象系统,与一般的对象语言,例如C++,Java不一 ...

  5. refreshcontrol 实现下拉刷新的功能

    该组件实现下拉刷新的功能.不过该组件是用在ScrollView的内部的,为ScrollView添加一个下拉刷新的功能.当ScrollView的垂直方向的偏移量scrollY:0的时候,手指往下拖拽Sc ...

  6. Twisted使用和scrapy源码剖析

    1.Twisted是用Python实现的基于事件驱动的网络引擎框架. 事件驱动编程是一种编程范式,这里程序的执行流由外部事件来决定.它的特点是包含一个事件循环,当外部事件发生时使用回调机制来触发相应的 ...

  7. java 基础代码

    /** * Created by y0n on 2017/4/17. * 1.输出控制台传递的默认参数 */public class JavaDay001_1 { public static void ...

  8. 如何在IIS上发布网站 在阿里云服务器windows server2012r iis上部署.net网站

    如何在IIS上发布网站   本片博客记录一下怎么用IIS发布一个网站,以我自己电脑上一个已经开发完成的网站为例: 1.打开项目 这是我电脑上的一个项目,现在我记录一下将这个项目发布到iis上的整个过程 ...

  9. HTML5视频播放插件Video.js使用详解

    一.Video.js简介 Video.js 是一个开源的 Html5 jquery 视频插件,这个插件可以用来处理 Flash 视频,它还是一个多平台支持的产品. Moreover,YouTube,V ...

  10. delphi 控制音量 静音的类

    delphi 控制音量 静音的类 unit ttSound; interface uses winapi.windows, winapi.Messages; type SimpleSoundContr ...