我浏览了很多关于此的帖子并尝试了一些建议,但仍然没有完全理解。 我想抓一些脚本运行的html页面,通常执行脚本以在点击后显示链接。一些人提到了firebug和其他人谈到了逆向工程我需要的代码。但在尝试逆向工程后,我仍然没有看到如何在跟踪脚本函数后获取数据。
jQuery('.category-selector').toggle(
function() {
var categoryList = jQuery('#category-list');
categoryList.css('top', jQuery(this).offset().top+43);
jQuery('.category-selector img').attr ('src', '/images/up_arrow.png');
categoryList.removeClass('nodisplay');
},
function() {
var categoryList = jQuery('#category-list');
jQuery('.category-selector img').attr('src', '/images/down_arrow.png');
categoryList.addClass('nodisplay');
}
);
jQuery('.category-item a').click(
function(){
idToShow = jQuery(this).attr('id').substr(9);
hideAllExcept(jQuery('#category_' + idToShow));
jQuery('.category-item a').removeClass('activeLink');
jQuery(this).addClass('activeLink');
}
);
我正在使用vb.net,一些网站很容易使用firebug,在那里查看我能够提取所需数据的脚本。我在这种情况下做了什么?链接是http://featured.typepad.com/,类别是我尝试访问的内容。请注意,网址不会更改。 感谢任何回复。
答案 0 :(得分:3)
我最好的建议是使用Selenium进行屏幕抓取。它通常用于自动化网站测试,但很适合您的情况。我曾经多次在屏幕上刮取AJAX页面,其中页面依赖于Javascript。
http://seleniumhq.org/projects/ide/
您可以编写屏幕抓取代码以在.NET中运行,它可以使用Firefox或IE来运行您的屏幕抓取。
使用selenium,您将使用Firefox中的Selenium IDE记录屏幕抓取会话(在上面的链接中查找Firefox扩展)。该屏幕抓取会话可以输出HTML模板或C#代码。它也许能够输出VB。
您将把屏幕上的C#或VB.NET输出复制到您将创建的selenium .NET项目中,然后通过Nunit运行Selenium项目。
我建议在网上寻找一些帮助,让Selenium开始工作,但这应该让你顺利。