【python】python2和python3中urllib、urllib2、urllib3的区别

一、问题引入

        菜鸟学爬虫得用urllib,参考一个大神写的文章,主要用的是python2.7,而我用的python3,这就尴尬了,在python3中,没有urllib2这个库,统一为urllib。

        例如大神的例子如下:

import urllib2
 
response = urllib2.urlopen("http://www.baidu.com")
print response.read()

        用python3这么写就会报错。

二、区别

python2 python3
import urllib2、import urllib、urllib2.Request import urllib.request,urllib.error,urllib.parse、urllib.request
import urlparse import urllib.parse
import urlopen import urllib.request.urlopen
import urlencode import urllib.parse.urlencode
import urllib.quote import urllib.request.quote
cookielib.CookieJar http.CookieJar

三、用python3爬百度的两种方法

        方法一:

import urllib.request

response = urllib.request.urlopen('http://www.baidu.com')
html = response.read().decode('utf-8')
print(html)

        方法二:

#-*- coding: utf-8 -*-
import urllib3

#一个PoolManager实例来生成请求,由该实例对象处理与线程池的链接以及线程安全的所有细节
http = urllib3.PoolManager()
#通过request()方法创造一个请求:
r = http.request('GET','http://www.baidu.com')
#获得登录状态码
print(r.status)
#获得html源码,utf-8解码
print(r.data.decode())

        两种方法都可以爬到百度页面,嘿嘿~
 

你可能感兴趣的:(python)