Github https://github.com/node-modules/urllib
https://www.npmjs.com/package/urllib

urllib提供了一系列用于操作HTTP URL的功能,比如

  1. 数字身份认证
  2. 重定向
  3. Cookie
  4. 网络超时等 ```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()); });

  1. <a name="ZK9ZC"></a>
  2. ## urllib.urlopen
  3. 打开一个url方法,返回一个文件对象
  4. <a name="ZGwex"></a>
  5. ## urllib.urlencode
  6. 将url中的健值对以连接符&划分,这里可以结合post,get方法
  7. ```jsx
  8. const file = urllib.urlopen('http://www.baidu.com')
  9. const first = file.readline() // 读取htmL页面的第一行
  10. '<!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

  1. const query = urllib.urlencode({'spam':1,'egg':2,'bacon':3})
  2. // query 'bacon=3&egg=2&spam=1'
  3. const file = urllib.urlopen(`http://www.baidu.com?${query}`)
  4. file.read();

post

  1. urllib.urlopen("http://172.25.254.153/",params)

urllib.urlretrieve

将url定位的html文件下载到本地的硬盘中,
如果不指定filename,则会存为临时文件
AttributeError: ‘int’ object has no attribute ‘geturl’

  1. const filename = urllib.urlretrieve('http://www.baidu.com',filename='/mnt/newfile');
  2. type(filename)

urllib.urlcleanup

清除由于urllib.urlretrieve()所产生的缓存

urllib.quote

将url数据获取以后,并将其编码,适用于 URL字符串

  1. urllib.quote('http://www.baidu.com') // 'http%3A//www.baidu.com'
  2. urllib.quote_plus('http://www.baidu.com') // 'http%3A%2F%2Fwww.baidu.com'