从网站抓取数据时Chrome扩展程序问题

时间:2017-08-14 10:59:18

标签: javascript google-chrome google-chrome-extension

我正在尝试创建用于抓取网站的Chrome扩展程序。我尝试使用我的扩展程序的XHR (XMLHttpRequest)文件中的background.js

以下是我尝试过的代码:

var req = new XMLHttpRequest();  

req.open('GET', tab.url,false);   
req.send();  
if(req.status == 200)  
   alert(req.responseText);

即使我尝试通过response.XML

进行访问
var req = new XMLHttpRequest();  

req.open('GET', tab.url,false);   
req.send();  
if(req.status == 200)  
   alert(req.responseXML);

但不能。我收到的是代码中没有注释部分的代码。我已经看到我尝试访问的代码可以从Chrome浏览器的View Source页面完全查看,但无法从Chrome浏览器的Inspect窗口查看相同的代码。

我无法理解为什么?可能是XHR无法抓取数据。如果这是场景,那么我可以为完整的代码抓取做些什么呢?我只是在客户端进行刮擦,而不涉及服务器端。我想过使用node.js模块,但它们不是客户端,如果它们是客户端的话,它们有很多限制。

1 个答案:

答案 0 :(得分:0)

您的代码看起来不正确。理想情况下,您不仅可以在发送后获得onreadystatechange回调的响应。

尝试以下格式

var xhr = new XMLHttpRequest(),
    method = "GET",
    url = tab.url;

xhr.open(method, url, true);
xhr.onreadystatechange = function () {
  if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
    console.log(xhr.responseText);
  }
};
xhr.send();