我对Javascript和编程相当新,并且一直在尝试制作Chrome扩展程序,以监控用户在特定网站上查看的任何产品的价格,并在价格发生变化时通知用户。我正在抓DOM来获取价格。 我希望扩展程序每5个小时访问一次页面并抓取DOM并更新价格。
我认为可以帮助我做到这一点的两种方法是使用PhantomJs或者让我的扩展程序打开带有保存URL的新选项卡,运行脚本来立即抓取并关闭它。
如何以新的标签方式或Phantom方式进行操作?
我尝试过window.open(url,'_ blank')并设置超时但没有帮助。 尝试使用iframe但无法访问框架中的文档。
如果我没有遵守提出问题的指导,请原谅。这是我的第一次。
答案 0 :(得分:2)
假设内容未动态加载,我认为您不必打开新选项卡来执行此操作。我只是做一个HTTP get请求来接收页面的HTML来抓取。这可以使用普通的javascript
来完成function httpGet(theUrl)
{
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", theUrl, false );
xmlHttp.send( null );
return xmlHttp.responseText;
}
或使用jQuery
$.get(
"somepage.php",
{paramOne : 1, paramX : 'abc'},
function(data) {
alert('page content: ' + data);
}
);
获得响应后,您可以使用jQuery.parseHTML或类似内容将其转换为您可以随意抓取的DOM节点数组。