爬虫入门,requests库篇

本文详细介绍了Python中requests库的使用方法,包括安装、基本请求、参数设置、异常处理及常见HTTP方法如GET、POST等。同时,提供了代码框架示例,帮助读者快速掌握requests库的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

更新:关于requests连接次数太多出现的问题
在调用request.get()之前加上
requests.adapters.DEFAULT_RETRIES = 5
作用为重新发起连接次数

=========================================================================

  1. requests库的安装,最简单的安装就是用操作平台。按Windows+R弹出窗口输入CMD后确定。按Python安装文件路径一直打开至pip输入install requests,再点击enter即可。
    在这里插入图片描述

  2. Requests库的方法

requests.request()  #构造一个请求,支撑一下的方法的基础,小白我JIO得没啥用,如调用get
requests.request(get,url,**kwrags)  #但我们通常直接调用get方法

requests.get(url)  #获取HTML网页的主要方法,对应于HTTP的GET
requests.head(url)  #获取HTML网页头信息的方法,对应于HTTP的HEAD
print(r.heads)  #就可以展示其头部内容

requests.post(url,datas=‘lingjianhang’)  #向HTML网页提交POST请求的方法,对应于HTTP的POST,可以添加列表和字典,数据
requests.put()  #向HTML网页提交PUT请求的方法,对应于HTTP的PUT,和post相同,但是会把以前的内容覆盖掉
requests.patch()  #向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete()  #向HTML原页面提交删除请求,对应于HTTP的DELETE

第二和第三个是获取,第四个到第七个是对内容修改操作。
接下来再来记录下几个常用的**kwrags的参数

#params,将自己像添加搜索的内容添加到网址里面,比如用火狐搜牛奶,会弹出关于牛奶的内容,这个时候someWhat="伊利",那么内容就是关于伊利牛奶的。
someWhat="我真帅"
r=requests.request('GET','https://home.firefoxchina.cn/',params=someWhat)
#等于以下,只要这7个方法里有那个参数,就可以互相替换,功能是一样的。
r=requests.get('https://home.firefoxchina.cn/',params=someWhat)

#data和上面的params差不多,但是是加在爬取网址的内容上。

#json和data一样

#headers,伪装自己,把自己的爬虫变成一个游览器的身份去访问。
toutou={'user-agent':'Mozilla/5.0'}#伪装成火狐游览器
r=requests.request('POST',https://home.firefoxchina.cn/,headrs=toutou)

#这里有办法看自己的爬虫的user-agent
print(r.reqquest.headers)

HTTP协议中是url为链接的
url格式的是“http:host[:port][path]”
host:Internet主机域名或者IP地址
port:端口号,可省略,(80)
path:请求资源的路径

  1. requests.get(url,paramas=None,**kwargs)方法。构造一个向服务器请求资源的Request的对象并返回一个包含服务器资源的Reapose对象,其中包含了所有内容。
    url是需要爬取的网址
    paramas是url中额外的参数,字典或者字节流格式(可选)
    **kwargs是12个控制访问的参数

  2. Response对象的方法。

import requests
r=requests.get(https://home.firefoxchina.cn/)  #这里r就是Response创建的对象
r.status_code  #获取请求的状态码,就是访问爬取页面成功与否,200即是成功的,404就是失败了
r.text  #将内容变成文本形式
r.encoding  #从http中的header中猜测响应的编码方式,常用的是UTF-8,gbk
r.apparent_encoding  #比上面的更准确,他是从网页内容判断编码方式
r.content  #响应内容的二进制形式,与r.text对应

在http中的header中不存在charset,则认为编码为ISO-8859-1。所以要解析内容就要在代码中添加r.encoding=r.apparent_encoding

  1. Requests库的异常
requests.ConnectionError  #网络链接异常,拒绝连接
requests.HTTPError  #HTTP错误异常
requests.URLRequired  #URL缺失异常
requests.TooManyRedirects  #超过最大重定向次数,产生重定向异常
requests.ConnectTimeout  #连接远程服务器超时异常
requests.Timeout  #请求URL异常,产生超时异常

第一次学就看到这么多异常感觉有点难看,其实有另一个简单判断异常

r.raise_for_status()  #会自动返回状态码200否则引发HTTPError异常

这样就能只用一个try语句就能解决异常了,不用用一个变量名接受返回值,直接加入这行代码就行。

现在这里给出一个代码框架

import  requests

def getUrlText(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return("天啊,咋个会产生异常!")

if __name__ == '__main__':
    url='https://home.firefoxchina.cn/'
    print(getUrlText(url))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值