网络爬虫:python中爬虫库的安装和简介

欢迎学习交流!
邮箱: z…@1…6.com
网站: https://zephyrhours.github.io/

前言:

随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。那么我们如何根据需求获取我们想要的东西呢? 网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。很多不太了解爬虫的朋友也许会感觉这是一个很高大上的技术,其实它的学习并不是很难,我们只需要学好python下面的 request库就好,这是一个专门用于网络爬虫的比较好的爬虫库。下面我就来介绍一下该库的安装过程和简单的测试。

一、Requests库的安装

1. 特点

Request库操具有以下特点:

  • 简洁、简单
  • 目前公认最好的爬虫库

2. 安装

  • step1: 打开cmd命令窗口,进入相关库位置,或者用管理员权限直接打开命令窗口;
  • step2: 使用如下命令进行安装:
pip install requests

安装完成后如下所示,提升库安装成功。
在这里插入图片描述
Request 的官方网站:
https://requests.readthedocs.io/en/master/
在这里插入图片描述

3. 测试

  • 启动IDLE,然后输入下面代码进行测试:
import requests
r=requests.get("http://www.baidu.com") # 以访问百度主页为例子
r.status_code       # 检测状态码,200表示访问成功,否则表示访问失败

注意: 如果在IDLE里面输入以上代码要逐行输入,否则会出错误,建议大家使用Pycharm
具体运行结果如下:
在这里插入图片描述
可以看到状态码返回值为200,这就说明已经访问成功。

  • 修改编码格式为“uft-8”,然后打印网页内容
r.encoding ='utf-8'      # 修改编码格式为utf-8
r.text                   # 打印网页内容

具体运行效果如下,可以看到百度网有首页就已经被抓取出来了。
在这里插入图片描述

二、Requests库简介

在requests库中,主要有7个方法,具体如下:

  • requests.request(): 构造一个请求,支撑以下各方法的基础方法
  • requests.get(): 获取HTML网页的主要方法,对应于HTTP的GET
  • requests.head(): 获取HTML网页头信息的方法,对应于HTTP的HEAD
  • requests.post(): 向HTML网页提交POST请求的方法,对应于HTTP的POST
  • requests.put(): 向HTML 网页体交PUT请求的方法,对应于HTTP的PUT
  • requests.patch(): 向HTML网页提交局部修改请求,对应于HTPP的PATCH
  • requests.delete(): 向HTML页面体交删除请求,对应于HTPP的DELECT

1. Requests库的get()方法

下面是获取一个网有最简单的代码,其中的url表示想要获取的网页网址。

r=requests.get(url)  # 获取网页最简单的代码

通过get方法构造一个向服务器请求资源的Request对象(Request大小写比较敏感,此处为大写);然后返回一个包含服务器资源的Response对象。
get方法的完整使用方法如下:

requests.get(url,params=None,**kwargs)
  • url: 拟获取页面的url链接
  • params: url中的额外参数,字典或字节流格式,可选
  • **kwargs: 12个控制访问的参数
    通过下面命令查看相关内容:
r.type(r)   # 检测访问类型,下面的返回信息表示表示这个类为Respose类
r.headers   #

在这里插入图片描述

2. Response对象的属性

利用 r=requests.get(url) 命令返回的 r 属于Response类,下面是Response对象的几个常用属性

  • r.status_code: HTTP请求的返回状态,200表示成功,404表示失败
  • r.text: HTTP响应内容的字符串形式,即url对应的内容
  • r.encoding: 从HTTP header中猜测的相应内容编码方式
  • r.apparent_encoding: 从内容中分析出的响应内容编码方法(备选编码方式)
  • r.content: HTTP响应内容的二进制形式

直接在IDLE中输入如下代码,在我们不进行编码之前直接打印,可以看到网页是乱码状态

import rquests
r=requests.get("https://www.baidu.com")
r.status_code
r.text      # 直接打印网页内容

在这里插入图片描述
然后我们使用下面两行代码分别查看该网页的编码格式:

r.encoding     # 网页当前编码方式
r.apparent_encoding   # 备选编码方式

具体返回值如下:
在这里插入图片描述
从返回结果可以看到当前编码格式,在当前编码格式下,返回页码内容是乱码的,所以我们考虑利用备选编码格式替换当前编码格式,然后在进行显示。

r.encoding = "utf-8"
r.text

此使可以看到网页汉字已经可以正常显示。
在这里插入图片描述
这说明: 网页内容对编码格式是有要求的,当使用r.enconding不能正确解码时,我们应该使用r.apparent_encoding返回的编码格式进行解码。

  • r.encoding: 如果header中不存在charest,则默认为编码为ISO-8859-1
  • r.apparent_encoding: 根据网页内容分析出的编码方式

总结

通过对Requests库的安装及其基本介绍,相信你应该会有一些基本的了解,为了方便初学者了解,此处代码演示使用的是python自带的IDLE(这个代码编辑器很不好用),因此建议大家选择一个适合自己的编辑器也很重要,笔者常用的编辑工具是 Pycharm Cummunity,感兴趣的朋友可以自己搜搜下载,该软件完全免费,而且相对比较好用。后面的文章中笔者也会更新一些爬取网页的通用代码框架,希望对于初学者有所帮助。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值