urllib库的使用

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字符串,又可以是一个Requst对象,一般使用后者添加其他参数。

当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)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值