如何模拟点击别人网站的客户端按钮
我现在采集别人网站的数据,但是进入别人网站后,是看不到我想要的数据,必需得客户端点击一个buttom才能显示数据,分虽不多,但请各位兄弟姐妹指点指点,谢谢先了
------解决方案--------------------用httpwatch或者firebug之类的工具去拦截一下。
模拟数据post过去就可以了
------解决方案--------------------最简单的办法直接用 VS 的 web 性能测式(测式菜单),会自动打开网页,输入地址,所有的操作均会被记录下来,最后有一个生成代码的按钮,得到的代码简单处理一下就是你要的.
也可以运行测试,看是否能够达到效果.
当前若要验证码就没有办法了.
------解决方案--------------------用httpwatch或者HttpAnalyzer之类的工具抓包看下撒,然后用httpWebRequest等方法模拟提交,正则等处理返回的html内容就是你想要的
------解决方案--------------------你的程序是winform的吗?如果不要求性能,只要结果的话,可以使用winform下的webborwser控件,它可以模拟IE的动作。
假设你首先进入的页面地址是http://www.xxx.com/default.html。获取数据的那个按钮的ID是btnGetData。那么代码可以这么写:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
string url = this.webBrowser1.Url.ToString();
if (e.Url.ToString() != url) { return; }
// 模拟按钮点击
if (url == "http://www.xxx.com/default.html")
{
this.webBrowser1.Document.GetElementById("btnGetData").InvokeMember("click");
}
}
------解决方案--------------------当然,在点击按钮之后,如果页面跳转到其他的地址,你就继续判断地址并作出相应的页面解析。你是做数据抓取分析的,这不用我说了。如果依然在这一页,你可以看看是否网页显示数据的那块,本身就是隐藏的。如果是隐藏的,设置不需要去触发按钮的点击事件,可以直接访问