如何通过urllib实现高效的网络请求?

2026-04-30 21:171阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计471个文字,预计阅读时间需要2分钟。

如何通过urllib实现高效的网络请求?

pythonimport urllib.request

发起GET请求url=http://example.comresponse=urllib.request.urlopen(url)

如何通过urllib实现高效的网络请求?

读取内容content=response.read()

打印内容print(content)

import urllib.request

'''
普通请求,不设置headers
'''
# url = 'www.jianshu.com'
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
}
req = urllib.request.Request(urls,headers=headers)
r = urllib.request.urlopen(req)
print(r.read().decode())import urllib.request
from www.baidu.com')

print(res.read().decode())
import urllib.request
proxy = {
'www.baidu.com/s?wd=%E9%98%BF%E5%B8%83%E4%BA%91'
url = urllib.parse.unquote(url)
#ascii转中文
print(url)
#转成ascii
print(urllib.parse.quote(url))

#拼接参数
data = {
'user':'礼拜',
'password':'123'
}
print(urllib.parse.urlencode(data))
from urllib import request,error
try:
res = request.urlopen('www.jianshu.com')
except error.URLError as e:
print(e.reason)
print(e.headers)
print(e.code)

接下来,就上面的代码,我们聊聊这个,说一句题外话,我们所有的爬虫基础都是基于socket的。

urllib是python的标准库,所以呢,它用起来比较繁琐,不是太简便。首先说第一段代码。因为这是一个标准库,所以不需要用pip安装。直接import使用。这里有一个测试爬虫或者说是学习爬虫的一个网址--​​www.baidu.com/s?wd=%E9%98%BF%E5%B8%83%E4%BA%91​​

上面这个url是百度的。我们复制url,然后粘贴到代码中,就会发现wd后面的中文发生了变化,变成了ASCII。所以我们就用到了

​​unquote,这个是ascii转中文,quote是中文转ascii,有时候请求我们的把参数转换一下。​​

第五段代码就是错误处理,为了我们代码的健壮,所以最好是精确匹配错误。然后处理错误。这个是urllib中的包,顺便了解一下。

本文共计471个文字,预计阅读时间需要2分钟。

如何通过urllib实现高效的网络请求?

pythonimport urllib.request

发起GET请求url=http://example.comresponse=urllib.request.urlopen(url)

如何通过urllib实现高效的网络请求?

读取内容content=response.read()

打印内容print(content)

import urllib.request

'''
普通请求,不设置headers
'''
# url = 'www.jianshu.com'
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
}
req = urllib.request.Request(urls,headers=headers)
r = urllib.request.urlopen(req)
print(r.read().decode())import urllib.request
from www.baidu.com')

print(res.read().decode())
import urllib.request
proxy = {
'www.baidu.com/s?wd=%E9%98%BF%E5%B8%83%E4%BA%91'
url = urllib.parse.unquote(url)
#ascii转中文
print(url)
#转成ascii
print(urllib.parse.quote(url))

#拼接参数
data = {
'user':'礼拜',
'password':'123'
}
print(urllib.parse.urlencode(data))
from urllib import request,error
try:
res = request.urlopen('www.jianshu.com')
except error.URLError as e:
print(e.reason)
print(e.headers)
print(e.code)

接下来,就上面的代码,我们聊聊这个,说一句题外话,我们所有的爬虫基础都是基于socket的。

urllib是python的标准库,所以呢,它用起来比较繁琐,不是太简便。首先说第一段代码。因为这是一个标准库,所以不需要用pip安装。直接import使用。这里有一个测试爬虫或者说是学习爬虫的一个网址--​​www.baidu.com/s?wd=%E9%98%BF%E5%B8%83%E4%BA%91​​

上面这个url是百度的。我们复制url,然后粘贴到代码中,就会发现wd后面的中文发生了变化,变成了ASCII。所以我们就用到了

​​unquote,这个是ascii转中文,quote是中文转ascii,有时候请求我们的把参数转换一下。​​

第五段代码就是错误处理,为了我们代码的健壮,所以最好是精确匹配错误。然后处理错误。这个是urllib中的包,顺便了解一下。