爬虫库requests使用(1)基本使用

本文详细介绍了requests库的安装与基本使用,包括GET请求的参数传递、网页抓取、二进制数据获取,以及POST请求的示例。通过实例演示如何发送HTTP请求并解析响应,适合Python开发者学习网络编程。
摘要由CSDN通过智能技术生成

一、requests安装

Github : https:github.com/requests/requests
官方文档: http://www.python-requests.org
PyPI :https://pypi.python.org/pypi/requests

pip安装

pip install requests

wheel安装
安装wheel库

pip install wheel

二、基本使用用例

import requests

r = requests.get("http://www.baidu.com/")
print(type(r))
print(r.status_code)
print(type(r.text))
print(r.text)
print(r.cookies)

在这里插入图片描述  我们调用get()方法进行请求操作,得到一个Response对象,然后分别输出了Response的类型,状态码,响应体的类型,内容以及Cookies,返回的类型是request.models.Response,响应体的类型是Str,Cookies的类型是RequestsCookieJar

三、GET请求

3.1、GET基本请求
r = requests.get("http://httpbin.org/get")
print(r.text)

运行结果:
在这里插入图片描述GET请求中,返回结果中包含了请求头,URL,IP地址。

利用params添加请求参数

data = {
    'name': 'Gemery',
    'age': '22'
}

response = requests.get("http://httpbin.org/get", params=data)
print(response.text)

在这里插入图片描述将参数加入到链接中进行请求。

网页返回类型实际上是Str类型的,但是确实JSON格式的。所以如果想直接解析结果,得到一个字典格式的话,可以直接调用json()方法。

data = {
    'name': 'Gemery',
    'age': '22'
}

response = requests.get("http://httpbin.org/get", params=data)
print(type(response.text))
print(response.text)
print("-----------------")
print(type(response.json()))
print(response.json())

在这里插入图片描述

3.2、抓取网页

以抓取知乎搜索页面的标题内容为例

# 用于模拟浏览器请求
heads = {
    'User-agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0'
}

r = requests.get("https://www.zhihu.com/explore", params=heads)
pattern = re.compile('explore-feed.*?question_link.*?>(.*?)</a>', re.S)
titles = re.findall(pattern, r.text)
print(titles)
3.3、抓取二进制数据

  图片,音频,视频文件本质上是二进制码组成的,有特定的保存格式和响应的解析方法。如果想爬取文件,需要拿到他们的二进制码。

response = requests.get("https://github.com/favicon.ico")
print('-----response.text-------')
print(response.text)
print('-----response.content-------')
print(response.content)

with open('D://favicon.ico', 'wb') as f:
    f.write(r.content)

这里调用open()方法,第一个参数是文件名称,第二个参数代表二进制写的形式打开,可以向文件里写入二进制数据。
在这里插入图片描述

四、POST请求

import requests

data = {'name': 'Gemery', 'age': 22}
r = requests.post("http://httpbin.org/post", data = data)
print(r.text)

在这里插入图片描述
我们可以看到参数以form形式提交

五、响应

r = requests.get("http://www.baidu.com")
print(type(r.status_code), r.status_code)
print(type(r.headers), r.headers)
print(type(r.cookies), r.cookies)
print(type(r.url), r.url)
print(type(r.history), r.headers)

在这里插入图片描述
状态码用于判断请求是否成功,requests还提供了一个内置的状态码查询对象requests.code,

r = requests.get("http://www.baidu.com")
exit() if not r.status_code == requests.codes.OK else print("request success")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值