分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

Urllib 模块

发布时间:2023-09-06 01:38责任编辑:顾先生关键词:暂无标签

Urllib模块

在python2和python3中的差异 在python2中,urllib和urllib2各有各个的功能,虽然urllib2是urllib的升级版,但是urllib2还是不能完全替代urllib,但是在python3中,全部封装成一个类,urllib

在python2和python3中的差异 Urllib2可以接受一个Request对象,并以此可以来设置一个URL的headers,但是urllib只接受一个URL。这就意味着你不能通过urllib伪装自己的请求头。 Urllib模板可以提供运行urlencode的方法,该方法用于GET查询字符串的生成,urllib2的不具备这样的功能,而且urllib.quote等一系列quote和unquote功能没有被加入urllib2中,因此有时也需要urllib的辅助。这就是urllib和urllib2一起使用的原因. quote用来url转码的

通过urllib下载图片并保存

#!/usr/bin/env python 
#coding:utf8

import urllib3
from urllib import ?request
import ?codecs

url = "http://5b0988e595225.cdn.sohucs.com/images/20170926/b2d72c4b34c84f94b2ceb639a56de24f.jpeg"
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"}
req = request.Request(url=url,headers=headers)
res = request.urlopen(req)
context = res.read()
with codecs.open("wx.jpg","wb") as fd:
???fd.write(context)
# request.urlretrieve(url,"wx.jpg")

下载的test1.jpg

urllib.request.urlopen(url, data=None, timeout=None)
url 需要打开的网站
data
psot提交的数据
Timeout 网站访问的超时时间
但是没法伪装我们的头信息
from urllib import request
req = request.Request(url, headers=headers, data=data)
html = request.urlopen(req).read()

通过上节获取的IP实现代理:

#!/usr/bin/env python #coding:utf8from urllib import request, parsedata = { ???????‘first‘: ‘true‘, ???????‘pn‘: 1, ???????‘kd‘: ‘Python‘ ???}url = ‘http://2017.ip138.com/ic.asp‘proxy = request.ProxyHandler({‘http‘:‘61.155.164.109:3128‘}) ?# 设置proxyopener = request.build_opener(proxy) ?# 挂载opener# opener = request.build_opener() ?# 挂载openerrequest.install_opener(opener) ?# 安装openerdata = parse.urlencode(data).encode(‘utf-8‘)page = opener.open(url, data).read()print(type(page))print(page.decode("gbk"))

Urllib 模块

原文地址:https://www.cnblogs.com/pythonlx/p/8325698.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved