Requests基础学习(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34120459/article/details/87069954

一、Requests简单入门

1、Requests库的简介

request库是python的第三方库,它也是目前公认的爬取网页最好的第三方库,其特点是:简单、简洁,甚至用一行代码就能从网页上获取相关资源。

2、requests库的安装方法

  1. 按住windows+R键,在窗口中输入cmd,打开命令提示符
    cmd

  2. pip install requests
    安装reuqests库

  3. 安装成功提示

requests库安装成功

3、request使用的简单实例

import requests
r = requests.get('https://www.bilibili.com/')  #获取哔哩哔哩首页信息
print(r.status_code)
r.encoding = 'utf-8'  #将其编码设置为utf-8,否则会乱码
print(r.text)   #将哔哩哔哩首页信息打印出来

运行结果:
哔哩哔哩首页爬取结果

二、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网页提交局部修改请求,对应于HTTP的PATCH
requests.delete() 向HTML网页提交删除请求,对应于HTTP的DELETE

1、r = requests.get(url)

返回一个包含服务器资源的 Response 对象
构造一个向服务器请求资源的 Request 对象

  • requests.get()函数的完整使用方法:

源代码:
在这里插入图片描述

url: 获取页面的url链接
paramas: url中的额外参数,字典或者字节流格式,可选
kwargs: 12个控制访问的参数

2、Response对象

import requests
r = requests.get('https://www.bilibili.com/')  #获取哔哩哔哩首页信息
print("状态码是:")
print(r.status_code)
print("类型是:")
print(type(r))
print("头信息是")
print(r.headers)

运行结果

3、Response对象属性

属性 说明
r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败
r.text HTTP响应内容的字符串形式,即:url对应的页面内容
r.encoding 从HTTPheader中猜测的响应内容编码方式
r.apparent_coding 从内容中分析出响应的内容编码方式(备选编码方式)
r.content HTTP响应内容的二进制形式
import requests
r = requests.get('https://www.baidu.com/')  #获取百度首页信息
print('encoding:',r.encoding)       
print('apparent_encoding:',r.apparent_encoding)      

'''
运行结果:
encoding: ISO-8859-1
apparent_encoding: utf-8
'''

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

三、爬取网页的通用爬虫框架

import requests
def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()   #不成功则抛出HTTPError异常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "Error"
if __name__ == '__main__':
    url = 'http://www.baidu.com'
    print(getHTMLText(url))

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_34120459/article/details/87069954