JavaScript爬虫

一般爬虫用python的 requests 库,非常方便

import requests        #导入requests包
url = 'http://www.cntour.cn/'
strhtml = requests.get(url)        #Get方式获取网页数据
print(strhtml.text)

那用JavaScript如何实现呢,一种方法是使用AJAX

注意的是浏览器默认支持AJAX,但node.js没有,所以需要npm install xmlhttprequest

var XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
let url = "http://localhost:8003/WorkAll/CurrentStateNO";  //这个url需要打开cfet2app后台程序用于测试
//let url = "https://baidu.com";
var xmlhttp = new XMLHttpRequest();  
xmlhttp.open("GET", url, true);  
xmlhttp.send();  
xmlhttp.onreadystatechange = function() {  
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {  
        console.log(xmlhttp.responseText);  

        //如果返回的是json格式文档,使用下面两行代码
        //var obj=JSON.parse(xmlhttp.responseText);
        //console.log(obj);
    }  
};

执行这个脚本就可以起到postman的作用了

另一种方法是使用axios代替AJAX,同样需要npm install axios

Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。

axios是AJAX的更高一层封装。服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。

官网:https://www.axios-http.cn/

const axios = require('axios');  
  
// 设置要爬取的 URL  
//let url = "https://www.baidu.com";  
let url = "http://localhost:8003/WorkAll/CurrentStateNO";  

axios(url).then(response => {  
    // 打印 HTTP 响应状态  
    console.log(response.status);  
    // 打印响应头信息  
    console.log(response.headers);  
    // 打印响应数据  
    console.log(response.data);  
}).catch(error => {  
    console.error(error);  
});

本文章使用limfx的vscode插件快速发布