目标url发请求
{“errorCode”:50} ,把_o
url = ‘https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule’
构建请求对象
req = urllib.request.Request(url, data=data, headers=headers)
发请求,获取响应对象
res = urllib.request.urlopen(req)
print(res.getcode()) # 得到响应码,200表示请求成功
html = res.read().decode(‘utf-8’)
print(type(html)) # <class ‘str’>,得到的是json数据
json数据转字典
dic = json.loads(html)
result = dic[“translateResult”] # [[{‘src’: ‘你好’, ‘tgt’: ‘hello’}]]
print(result[0][0][‘tgt’])

另一个简单的示例:
import urllib.request # 导入urllib.request模块
import urllib.parse # 导入urllib.parse模块
url = ‘https://www.httpbin.org/post’ # post请求测试地址
将表单数据转换为bytes类型,并设置编码方式为utf-8
print()
data = bytes(urllib.parse.urlencode({‘hello’: ‘python’}), encoding=‘utf-8’)
response = urllib.request.urlopen(url=url, data=data) # 发送网络请求
print(response.read().decode(‘utf-8’)) # 读取HTML代码并进行

================================================================================
urlopen()的timeout参数用于设置请求超时,该参数以秒为单位,表示如果在请求时超出了设置的时间还没有得到响应时就会抛出异常。
import urllib.request
url = ‘https://www.python.org/’
response = urllib.request.urlopen(url=url, timeout=0.1) # 设置超时时间为0.1秒
print(response.read().decode(‘utf-8’))
因为0.1秒设置的过快,结果因超时而产生异常,报错。
通常根据网络环境不同,设置一个合理的时间,如2秒,3秒。
对该网络超时异常进行捕捉并处理:
import urllib.request # 导入urllib.request模块
import urllib.error # 导入urllib.error模块
import socket # 导入socket模块
url = ‘https://www.python.org/’ # 请求地址
try:
发送网络请求,设置超时时间为0.1秒
response = urllib.request.urlopen(url=url, timeout=0.1)
print(response.read().decode(‘utf-8’)) # 读取HTML代码并进行utf-8解码
except urllib.error.URLError as error: # 处理异常
if isinstance(error.reason, socket.timeout): # 判断异常是否为超时异常
print(‘当前任务已超时,即将执行下一任务!’)

6. 复杂网络请求_urllib.request.Request()
==========================================================================================================
urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
参数说明:
-
url:访问网站的完整url地址
-
data:默认为N

本文详细介绍了Python的urllib模块在网络爬虫中的应用,包括发送请求、处理响应、设置超时、请求头、Cookies和代理IP等,并通过实例展示了get和post请求的实现。此外,还讲解了如何解析和组合URL,以及异常处理。内容覆盖了urllib的核心功能,适合Python爬虫初学者参考。
最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



