Github https://github.com/node-modules/urllib
https://www.npmjs.com/package/urllib
urllib提供了一系列用于操作HTTP URL的功能,比如
- 数字身份认证
- 重定向
- Cookie
- 网络超时等 ```jsx yarn add urllib
const urllib = require(‘urllib’);
urllib.request(‘http://cnodejs.org/‘, function (err, data, res) { if (err) { throw err; // you need to handle error } console.log(res.statusCode); console.log(res.headers); // data is Buffer instance console.log(data.toString()); });
<a name="ZK9ZC"></a>
## urllib.urlopen
打开一个url方法,返回一个文件对象
<a name="ZGwex"></a>
## urllib.urlencode
将url中的健值对以连接符&划分,这里可以结合post,get方法
```jsx
const file = urllib.urlopen('http://www.baidu.com')
const first = file.readline() // 读取htmL页面的第一行
'<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta content="always" name="referrer"><meta name="theme-color" content="#293
get
const query = urllib.urlencode({'spam':1,'egg':2,'bacon':3})
// query 'bacon=3&egg=2&spam=1'
const file = urllib.urlopen(`http://www.baidu.com?${query}`)
file.read();
post
urllib.urlopen("http://172.25.254.153/",params)
urllib.urlretrieve
将url定位的html文件下载到本地的硬盘中,
如果不指定filename,则会存为临时文件
AttributeError: ‘int’ object has no attribute ‘geturl’
const filename = urllib.urlretrieve('http://www.baidu.com',filename='/mnt/newfile');
type(filename)
urllib.urlcleanup
清除由于urllib.urlretrieve()所产生的缓存
urllib.quote
将url数据获取以后,并将其编码,适用于 URL字符串
urllib.quote('http://www.baidu.com') // 'http%3A//www.baidu.com'
urllib.quote_plus('http://www.baidu.com') // 'http%3A%2F%2Fwww.baidu.com'