python2.x 和python3.x 中urllib的区别,并简单使用

urllb  的常见变化有:

         在Python2.x中使用import.urllib2 -----------对应的,在Python3.x中会使用import.urllib.request,urllib.error

         在Python2.x中使用import.urllib -----------对应的,在Python3.x中会使用import.urllib.request,urllib.error,urllib.parse

         在Python2.x中使用import.urlparse -----------对应的,在Python3.x中会使用import.urllib.parse

         在Python2.x中使用import.urlopen-----------对应的,在Python3.x中会使用import.urllib.request.urlopen

         在Python2.x中使用import.urlencode-----------对应的,在Python3.x中会使用import.parse.urlencode

         在Python2.x中使用import.quote -----------对应的,在Python3.x中会使用import.urllib.request.quote

         在Python2.x中使用cookielib.CookieJar -----------对应的,在Python3.x中会使用http.CookieJar

         在Python2.x中使用urllib2.Request -----------对应的,在Python3.x中会使用urllib.request.Request

以上,总结了Urllib相关模块中从Python2.x到python3.x的常见的一些变动,如果之前用的是python2.x版本的,依据这个变动关系,可以快速写出Python3.x的程序.

 

简单使用urllib方法:   

 import urllib.request   #如果使用urllib方法,先导入urllib.request

file = urllib.request.urlopen(‘http://www.baidu.com’) #需要使用urllib.request.urlopen打开并爬取一个网页

html = file.read()   #读取全部内容

html = file.readline()#读取一行内容

  

注:读取内容常见的有3种方法:   

1>  file.read()读取文件的全部内容,与readlines不同的屙屎,read会把读取到的内容赋予一个字符串变量

2>  flie.readlines()  读取文件的全部内容,与read不同的是,readlines会把读取到的内容赋给一个列表变量,若要读取全部内容,推荐使用这种方式。

3> Flie.readline() 读取文件的一行内容

我们可以使用urllib.request 里面的urlretrieve()函数直接将对应信息写入本地文件,

格式为:urllib。reqeuest。urlretrieve(url,filename=本地文件地址)  

注:使用urlretrieve保存,在执行过程中,会产生一些缓存,如果想清除这些缓存信息,可以使用urlcleanup()进行清除,输入一下代码即可清除urlretrieve执行所造成的缓存:         

urllib.request.urlcleanup()

获取状态码:

file.gecode()   如果返回是200说明此响应正确
file.geturl()   获取当前爬取url地址

 如果,url输入中文或者不符合标准的字符,需要编码:

urllib.request.quote(‘http://www.baidu.com’)
返回:
‘http%3A//www.baidu.com’


那么响应的,需要解码,使用:
urllib.request.unquote(‘http%3A//www.baidu.com’)
返回:
‘http://www.baidu.com’

如何使用代理服务器:


def use_proxy(proxy_addr,url):
    import uellib.request
    proxy = urllib.request.ProxyHandler({'http':proxy_addr})
    opener = urllib.request.build_opener(proxy,urllib.request.HTTPHandler)
    urllib.request.install_opener(opener)
    data = urllib.reqeuet.urlopen(url).read().decode('utf-8')
    return data
proxy_addr ='202.7.210.22:5555'  #输入有效ip
data = use_proxy(proxy_addr,'http://www.baidu.com')
print(len(data))

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值