在无头刮擦时处理window.open()

时间:2012-07-23 07:26:13

标签: screen-scraping window.open phantomjs headless

我必须点击网址http://judis.nic.in/supremecourt/chejudis.asp。在这里提交表格以获取应该报废的页面。我正在使用PhantomJS和PJScrape。问题是,在表单提交后,结果显示在新窗口中。我已经浏览了phantomjs问题列表,发现windown.open无法处理。我可以在这里使用其他任何方式/框架吗? 我必须坚持无头刮,我不能使用Selenium等。

1 个答案:

答案 0 :(得分:0)

你可以在页面中注入javascript到monkey-patch window.open,就像那样:

var log = {};
window.my_open = window.open;    
window.open=function (str1,str2,str3){
    console.log("** window.open ** " + str1 + " / " + str2 + " / " + str3);
    log.open = {"url":str1, "name":str2, "features":str3};
    var new_win =  this.my_open(str1, str2,str3);
    return new_win;
}

然后你可以从PJS中访问网址并继续从那里抓取。

请注意,new_win将是“未定义的”,因为PJS没有实现它。