python request和urllib_requests和urllib.request的区别是什么?

我也是初学者,我先试着回答这个问题

首先说下 urllib中的urllib.request.Request()与urllib.request.urlopen()区别

相对于urllib.request.urlopen()来说urllib.request.Request是进一步的包装请求

总的来说,如果我们在获取请求对象时,不需要过多的参数传递,我么可以直接选择urllib.request.urlopen();如果需要进一步的包装请求,则需要用urllib.request.Request()进行包装处理。

回到requests,requests可以直接构造get,post请求并发起,而urllib.request只能先构造get,post请求,再发起。

例如:

import requests

user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 Edge/12.10240'

headers = {'User_Agent': user_agent}

get_response = requests.get(url,headers = headers)

post_response = requests.post(url,headers = headers)

#使用urllib比较简单的get请求

import urllib.request

response = urllib.request.urlopen("https://www.baidu.com")

html.response.read()

#构造用.Request后再用urlopen,所以没有requests简洁易懂

user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 Edge/12.10240'

headers = {'User_Agent': user_agent}

request = urllib.request.Request(urls, headers=headers)

response = urllib.request.urlopen(request)

Python中的urllibrequests是两个常用的网络请求库。urllibPython标准库中的模块,提供了一些用于进行网络请求的函数和类,使用简单但功能相对较少。而requests是一个第三方库,功能更丰富,提供了更方便的API来发送HTTP请求和处理响应。 在使用urllib进行GET请求时,可以使用urlopen方法来发送请求并获取响应,通过调用read方法来读取响应数据,然后使用decode方法进行解码。以下是一个示例: import urllib.request response = urllib.request.urlopen('http://www.baidu.com') print(response.read().decode()) 而对于POST请求,urllib并没有单独提供相应的函数,而是通过构建Request对象来传递data参数来实现。具体的示例代码如下: import urllib.parse import urllib.request url = 'http://www.someserver.com/cgi-bin/register.cgi' values = {'name': 'Michael Foord', 'location': 'Northampton', 'language': 'Python'} data = urllib.parse.urlencode(values) data = data.encode('ascii') req = urllib.request.Request(url, data) with urllib.request.urlopen(req) as response: the_page = response.read() 另外,requests库提供了更加方便的API来发送GET和POST请求,并处理HTTP响应。以下是一个使用requests库的示例代码: import requests resp = requests.get('http://www.baidu.com') print(resp.text) 可以看到,requests的使用更加简洁明了,通过调用get方法来发送GET请求并获取响应,然后通过text属性来获取响应内容。 综上所述,urllibrequests都是常用的Python网络请求库,根据需求选择适合的库来进行网络请求操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python 网络请求模块 urllibrequests](https://blog.csdn.net/aifeier1982/article/details/101950448)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值