Python:第三方库requests

今天,我们将用Python的pip,安装下载一个第三方模块requests,它可以帮助我们发起网络请求。

1.安装requests模块

在Windows系统下,打开一个cmd命令提示符,输入:

pip install requests

如果没有出现错误信息,则打开一个Python文件,输入:

import requests

运行代码,没有报错就说明成功安装。

2.使用requests模块

2.1 get方法

2.1.1 普通请求

import requests
r = requests.get("https://www.baidu.com/")

get方法主要用来发送Get请求,返回的对象有这几个常用的属性:

  • status_code 响应码
  • text 字符串形式的响应内容
  • encoding 编码格式
  • url 访问的网址
  • headers 访问的请求头

可以来打印它们:

print(r.status_code)
print(r.text)
print(r.encoding)
print(r.url)
print(r.headers)

不同的网址有不同的信息,大家可以自己试试。

2.1.2 修改请求头以及添加其它参数

2.1.2.1 传递URL参数

import requests
url_dict = {
    
    "test_name":'wangzirui32', "test_text": "abcdd"}
r = request.get("http://httpbin.org/get/", params=url_dict)
print("URL:", r.url)
print("Text:\n", r.text)

httpbin是一个可以测试请求与响应的网站,它返回的文本信息就会包含我们发送的参数。

2.1.2.2 修改请求头

有些网站有着一些反爬虫措施,这使得我们必须修改requests.get的请求头。
原来,get的请求头中有一项是User-Agent,它是访问网站的用户信息,默认为:

python-requests/2.8.1

(版本号可能不同)
这使得网站检测出这不是正常用户的请求头,自然会被限制。
如何修改它呢?
首先,我们要复制一些请求头信息,可以来到httpbin的主页,使用检查功能,找到Network,选择All,在Name栏中找到httpbin.org,如下图所示。
寻找请求头信息1

再双击httpbin.org,在右边弹出的信息内找到headers,往下翻,找到User-Agent和Host,这些都是请求头中一些重要的信息。
寻找请求头信息2
复制后,编写请求头:

import requests
headers = {
    
    "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
		   "Host": "httpbin.org"
		   }
url = "http://www.httpbin.org/"
# 传递请求头
r = requests.get(url, headers=headers)

这样,就完成了请求头的修改。
但是,据我所知,httpbin网站都没有限制网络爬虫,这仅仅是个示例。

2.1.2.3 超时

url = "http://www.httpbin.org/"
r = requests.get(url, timeout=10)

如果网页在规定的时间内没有返回信息,就会超时
以上代码中,timeout设置限制的秒数,在规定时间内得不到响应,就会报错。

2.2 post方法

post方法用来向目标网页发送表单。表单在网页中主要负责数据采集功能,我们就用post方法向表单发送数据,让它进行响应处理。

import reqeust
# 表单字典
test_dict = {
    
    "test_name":'wangzirui32', "test_text": "abcdd"}
url = "http://httpbin.org/post/"
r = requests.post(url, data=test_dict)
print(r.text)

在上述代码中,我们使用了post方法,给予了data参数,在传递的过程中,这个方法会把字典变为表单格式。


好了,今天的介绍就到这了,感兴趣的可以收藏起来慢慢阅读!

猜你喜欢

转载自blog.csdn.net/wangzirui32/article/details/113092004