欢迎访问宙启技术站
智能推送

Python网络请求函数。

发布时间:2023-06-16 05:22:15

Python是一种优秀的编程语言,拥有丰富的库和模块,网络请求模块也不例外。Python的网络请求模块一般都有两种,分别是内置的urllib和第三方库requests。这两种模块都可以用来进行网络请求,而且使用方法也十分简单。

1. urllib

urllib是Python自带的一个网络请求模块,可以用来访问Web页面、发送HTTP请求等操作。其中,urllib.request模块提供了最基本的方法来处理URL请求,并且带有一些参数来定制请求。

我们可以使用urllib.request.urlopen()方法打开一个URL,并读取其中的内容,比如:

import urllib.request

response = urllib.request.urlopen('https://www.google.com')
print(response.getcode())
print(len(response.read()))

上述代码中,我们使用urllib.request.urlopen()方法打开了一个Google的URL链接,并且通过response.getcode()方法获取了该URL链接的HTTP状态码。此外,我们还通过response.read()方法读取了该URL链接的HTML内容,并通过len()方法获取了该HTML内容的长度。

2. requests

requests是Python第三方库,功能十分强大。它比内置的urllib模块更加方便,代码更加简洁。requests库内置很多方法,比如:

import requests

# GET请求
response = requests.get('https://www.google.com')
print(response.status_code)
print(len(response.text))

# POST请求
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://www.google.com', data=data)
print(response.status_code)
print(len(response.text))

上述代码中,我们首先使用requests.get()方法和requests.post()方法分别模拟了GET和POST请求,并且打印了它们的HTTP状态码和响应内容。

此外,requests库的高级功能还包括:

(1)设置请求头(headers)

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get('https://www.google.com', headers=headers)
print(response.status_code)
print(len(response.text))

上述代码中,我们通过设置headers参数,模拟了浏览器请求方式,并获取了Google的首页内容。

(2)设置代理(proxies)

import requests

proxies = {'http': 'http://10.10.1.10:3128',
           'https': 'http://10.10.1.10:1080'}
response = requests.get('https://www.google.com', proxies=proxies)
print(response.status_code)
print(len(response.text))

上述代码中,我们通过设置proxies参数,使用了一个HTTP代理服务器,并获取了Google的首页内容。

(3)发送JSON数据

import requests

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://www.google.com', json=data)
print(response.status_code)
print(len(response.text))

上述代码中,我们通过设置json参数,将data数据转换为JSON格式,并通过POST方法发送给Google服务器。

(4)上传文件

import requests

files = {'file': open('data.csv', 'rb')}
response = requests.post('https://www.google.com', files=files)
print(response.status_code)
print(len(response.text))

上述代码中,我们通过设置files参数,上传了一个名为data.csv的文件,并通过POST方法发送给Google服务器。

以上就是Python网络请求的一些常见技巧和方法。无论是内置的urllib模块还是第三方库requests,它们都可以快速、简单地实现网络请求。然而,我们在实践中需要注意一些反爬虫机制,比如使用浏览器伪装请求头等技巧。