我正在尝试创建用于抓取网站的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模块,但它们不是客户端,如果它们是客户端的话,它们有很多限制。
答案 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();