美文网首页
urllib的使用总结

urllib的使用总结

作者: meetliuxin | 来源:发表于2018-06-12 11:11 被阅读0次

    Python3中将python2.7的urllib和urllib2两个包合并成了一个urllib库
    Python3中,urllib库包含有四个模块:

    • urllib.request for opening and reading URLs
    • urllib.error containing the exceptions raised by urllib.request
    • urllib.parse for parsing URLs
    • urllib.robotparser for parsing robots.txt files

    urllib.request这个模块用得比较多, 尤其是urlopen函数,会返回一个二进制的对象,对这个对象进行read()操作可以得到一个包含网页的二进制字符串,然后用decode()解码成一段html代码:
    语法结构:urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None, capath=None, cadefault=False, context=None)
    参数:其中url既可以是一个URL字符串,又可以是一个Request对象,一般使用后者添加其他参数。

    当request的方式是post时,使用参数data,用于填写传递的表单信息,将data填好表单信息,准备传入urlopen 前,还需要利用urllib.parse里的urlencode()函数转换格式,写成data = urllib.parse.urlencode(data).encode(‘’),然后将data传入函数。

    而urllib.request的Request函数,也可以用于打开url字符串,同时可以传入更多的参数,例如:headers,Request函数可以返回一个request对象作为urlopen函数的url参数使用。

    语法结构:urllib.request. Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)

    参数:其中url是一个URL字符串。

    data用法与urlopen一致。

    headers参数是一个字典,服务器对于用户发出的request,会通过其中的headers信息来判断用户发信息,我们可以通过自己编写headers传入urllib.request. Request中用于伪装自己的身份。Header中User-agent参数是判断用户身份。另外通过设置代理可以改变用户提交时的IP地址。

    使用代理:

    步骤:

    1.参数是一个字典{‘类型’:‘代理IP:端口号’}

    proxy_support=urllib.request.ProxyHandler({‘类型’:‘代理IP:端口号’})

    2.定制、创建一个opener

    opener = urllib.request.build_opener(Proxy_support)

    创建opener以后,也可以在opener里添加一个User-agent,代码如下:

    opener.addheaders = [(‘’User_agent,’’)]

    3a.安装opener(这种方法将opener一劳永逸地安装到系统中,每次访问自动使用这个代理访问)

    urllib.request.install_opener(opener)

    3b.调用opener(这种方法暂时使用代理进行一次访问)

    opener.open(url)

    相关文章

      网友评论

          本文标题:urllib的使用总结

          本文链接:https://www.haomeiwen.com/subject/gwjleftx.html