文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python包中的urllib网络请求怎么实现

2023-06-30 05:59

关注

这篇文章主要讲解了“python包中的urllib网络请求怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python包中的urllib网络请求怎么实现”吧!

一、简介

二、发起请求

import urllib.request# 方法一resp = urllib.request.urlopen('http://www.baidu.com', timeout=1)print(resp.read().decode('utf-8'))# 方法二request = urllib.request.Request('http://www.baidu.com')response = urllib.request.urlopen(request)print(response.read().decode('utf-8'))

三、携带参数请求

import urllib.parseimport urllib.requestparams = {'name':'autofelix','age':'25'}data = bytes(urllib.parse.urlencode(params), encoding='utf8')response = urllib.request.urlopen("http://www.baidu.com/", data=data)print(response.read().decode('utf-8'))

四、获取响应数据

import urllib.requestresp = urllib.request.urlopen('http://www.baidu.com')print(type(resp))print(resp.status)print(resp.geturl())print(resp.getcode())print(resp.info())print(resp.getheaders())print(resp.getheader('Server'))

五、设置headers

import urllib.requestheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}request = urllib.request.Request(url="http://tieba.baidu.com/", headers=headers)response = urllib.request.urlopen(request)print(response.read().decode('utf-8'))

六、使用代理

import urllib.requestproxys = urllib.request.ProxyHandler({'http': 'proxy.cn:8080','https': 'proxy.cn:8080'})opener = urllib.request.build_opener(proxys)urllib.request.install_opener(opener)request = urllib.request.Request(url="http://www.baidu.com/")response = urllib.request.urlopen(request)print(response.read().decode('utf-8'))

七、认证登录

import urllib.requesturl = "http://www.baidu.com/"user = 'autofelix'password = '123456'pwdmgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()pwdmgr.add_password(None,url,user,password)auth_handler = urllib.request.HTTPBasicAuthHandler(pwdmgr)opener = urllib.request.build_opener(auth_handler)response = opener.open(url)print(response.read().decode('utf-8'))

八、设置cookie

import http.cookiejarimport urllib.requestcookie = http.cookiejar.CookieJar()handler = urllib.request.HTTPCookieProcessor(cookie)opener = urllib.request.build_opener(handler)response = opener.open("http://www.baidu.com/")f = open('cookie.txt', 'a')for item in cookie:f.write(item.name+" = "+item.value+'\n')f.close()

九、异常处理

from urllib import error, requesttry:resp = request.urlopen('http://www.baidu.com')except error.URLError as e:print(e.reason)

十、HTTP异常

from urllib import error, requesttry:resp = request.urlopen('http://www.baidu.com')except error.HTTPError as e:print(e.reason, e.code, e.headers, sep='\n')except error.URLError as e:print(e.reason)else:print('request successfully')

十一、超时异常

import socket, urllib.request, urllib.errortry:resp = urllib.request.urlopen('http://www.baidu.com', timeout=0.01)except urllib.error.URLError as e:print(type(e.reason))if isinstance(e.reason,socket.timeout):print('time out')

十二、解析编码

from urllib import parsename = parse.quote('飞兔小哥')# 转换回来parse.unquote(name)

十三、参数拼接

from urllib import parseparams = {'name': '飞兔', 'age': '27', 'height': '178'}parse.urlencode(params)

十四、请求链接解析

from urllib.parse import urlparseresult = urlparse('http://www.baidu.com/index.html?user=autofelix')print(type(result))print(result)

十五、拼接链接

from urllib.parse import urljoinprint(urljoin('http://www.baidu.com', 'index.html'))

十六、字典转换参数

from urllib.parse import urlencodeparams = {'name': 'autofelix','age': 27}baseUrl = 'http://www.baidu.com?'print(baseUrl + urlencode(params))

感谢各位的阅读,以上就是“python包中的urllib网络请求怎么实现”的内容了,经过本文的学习后,相信大家对python包中的urllib网络请求怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯