页面地址:
http://journals.lww.com/anesthesiology/toc/2011/01000
这个好像还不是__doPostBack(eventTarget, eventArgument),而是这么一堆乱起八糟的javascript:WebForm_DoPostBackWithOptions(new%20WebForm_PostBackOptions("ctl00$SPWebPartManager1$g_d5feef41_4555_489e_8dcb_6455ffa4a6f0$_ffffe3392d7fda1a$topPager$nextLink",%20"",%20true,%20"",%20"",%20false,%20true))
哪位大侠知道怎么让他翻页吗?
我在网上搜索到这个方法:
for (int i = 0; i < 1000; i++) { System.Net.WebClient WebClientObj = new System.Net.WebClient(); System.Collections.Specialized.NameValueCollection PostVars = new System.Collections.Specialized.NameValueCollection(); PostVars.Add("__VIEWSTATE", "此处是您需要提前得到的信息"); PostVars.Add("__EVENTVALIDATION", "此处是您需要提前得到的信息"); PostVars.Add("__EVENTTARGET", "此处是__dopostback方法对应的参数"); PostVars.Add("__EVENTARGUMENT", "此处是__dopostback方法对应的参数"); WebClientObj.Headers.Add("ContentType", "application/x-www-form-urlencoded"); try { byte[] byte1 = WebClientObj.UploadValues("http://www.xxxx.cn/messagelist.aspx", "POST", PostVars); string ResponseStr = Encoding.UTF8.GetString(byte1); //得到当前页面对应的html 文本字符串 GetPostValue(ResponseStr);//得到当前页面对应的 __VIEWSTATE 等上面需要的信息,为抓取下一页面使用 SaveMessage(ResponseStr);//保存自己关心的内容到数据库中 } catch (Exception ex) { Console.WriteLine(ex.Message); } }
但是: PostVars.Add("__VIEWSTATE", "此处是您需要提前得到的信息"); PostVars.Add("__EVENTVALIDATION", "此处是您需要提前得到的信息"); PostVars.Add("__EVENTTARGET", "此处是__dopostback方法对应的参数"); PostVars.Add("__EVENTARGUMENT", "此处是__dopostback方法对应的参数");
括号里的中文提示是什么意思啊?抓狂了快!
http://journals.lww.com/anesthesiology/toc/2011/01000
这个好像还不是__doPostBack(eventTarget, eventArgument),而是这么一堆乱起八糟的javascript:WebForm_DoPostBackWithOptions(new%20WebForm_PostBackOptions("ctl00$SPWebPartManager1$g_d5feef41_4555_489e_8dcb_6455ffa4a6f0$_ffffe3392d7fda1a$topPager$nextLink",%20"",%20true,%20"",%20"",%20false,%20true))
哪位大侠知道怎么让他翻页吗?
我在网上搜索到这个方法:
for (int i = 0; i < 1000; i++) { System.Net.WebClient WebClientObj = new System.Net.WebClient(); System.Collections.Specialized.NameValueCollection PostVars = new System.Collections.Specialized.NameValueCollection(); PostVars.Add("__VIEWSTATE", "此处是您需要提前得到的信息"); PostVars.Add("__EVENTVALIDATION", "此处是您需要提前得到的信息"); PostVars.Add("__EVENTTARGET", "此处是__dopostback方法对应的参数"); PostVars.Add("__EVENTARGUMENT", "此处是__dopostback方法对应的参数"); WebClientObj.Headers.Add("ContentType", "application/x-www-form-urlencoded"); try { byte[] byte1 = WebClientObj.UploadValues("http://www.xxxx.cn/messagelist.aspx", "POST", PostVars); string ResponseStr = Encoding.UTF8.GetString(byte1); //得到当前页面对应的html 文本字符串 GetPostValue(ResponseStr);//得到当前页面对应的 __VIEWSTATE 等上面需要的信息,为抓取下一页面使用 SaveMessage(ResponseStr);//保存自己关心的内容到数据库中 } catch (Exception ex) { Console.WriteLine(ex.Message); } }
但是: PostVars.Add("__VIEWSTATE", "此处是您需要提前得到的信息"); PostVars.Add("__EVENTVALIDATION", "此处是您需要提前得到的信息"); PostVars.Add("__EVENTTARGET", "此处是__dopostback方法对应的参数"); PostVars.Add("__EVENTARGUMENT", "此处是__dopostback方法对应的参数");
括号里的中文提示是什么意思啊?抓狂了快!
解决方案 »
- UpdatePanel中放两个div相互切换,有点时候切换不过来
- 关于传参的问题
- 高手进!!
- ajaxpro级联问题
- 请高手写个YYYYMMDD八位日期格式的正则表达式??感谢万分。
- 怎么取修改在datagrid中鼠标选种的任意一行TextBox的值?
- 在VS2003中,鼠标放到代码上出现的提示不见了,100分求解决办法
- 我想有选择地隐藏freetextbox 1.6.3工具图标,如何设置?
- 我的form action无法连接下一个页面
- datagrid控件的buttoncolumn的commandname只能是delete么?
- 为何点击一个最简单的服务器端按钮控件也会刷新网页
- 急急急~~~~
__VIEWSTATE、__EVENTVALIDATION、__EVENTTARGET、__EVENTARGUMENT 这几个参数应该都可以在
页面http://journals.lww.com/anesthesiology/toc/2011/01000的网页源文件中找到你要做的就是 get请求地址http://journals.lww.com/anesthesiology/toc/2011/01000 ,从返回的源文件中
拿到这些个参数 , 再发送请求去获取第二页
我得到页面内容后,抓取到__VIEWSTATE,__EVENTVALIDATION后还是不行啊,而且把鼠标放在翻页按钮上,显示的链接是:javascript:WebForm_DoPostBackWithOptions(new%20WebForm_PostBackOptions("ctl00$SPWebPartManager1$g_d5feef41_4555_489e_8dcb_6455ffa4a6f0$_ffffe3392d7fda1a$topPager$nextLink",%20"",%20true,%20"",%20"",%20false,%20true))
还不是__doPostBack(eventTarget, eventArgument)
这些我弄明白了,已经使用这段代码得到了另一个aspx页面的信息,但是我要求助的这个网站还是不行,
http://journals.lww.com/anesthesiology/toc/2011/01000 这个页面的翻页好像更复杂一些
漏掉一个都可能造成抓取失败 你可以用 firebug 监控下 post请求表单都 发送了哪些内容,然后自己模仿表单 发送post请求