• Urllib 模块


    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:utf8
    from urllib import request, parse
    data = {
            'first': 'true',
            'pn': 1,
            'kd': 'Python'
        }
    url = 'http://2017.ip138.com/ic.asp'
    
    proxy = request.ProxyHandler({'http':'61.155.164.109:3128'})  # 设置proxy
    opener = request.build_opener(proxy)  # 挂载opener
    # opener = request.build_opener()  # 挂载opener
    request.install_opener(opener)  # 安装opener
    data = parse.urlencode(data).encode('utf-8')
    page = opener.open(url, data).read()
    print(type(page))
    print(page.decode("gbk"))
  • 相关阅读:
    python3与Excel的完美结合
    Python3连接MySQL
    Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密
    Jmeter 接口测试之MD5加密函数(函数助手篇)
    ubuntu16.04安装python3
    解释Crypto模块怎么就这么"皮"?No module named "Crypto"
    python3 django 安装
    未授权访问的缺陷原理的一种可能性
    一篇RPO漏洞挖掘文章翻译加深理解。
    漏洞挖掘技巧之利用javascript:
  • 原文地址:https://www.cnblogs.com/pythonlx/p/8325698.html
Copyright © 2020-2023  润新知