网页抓取的问题,aspx页面,post翻页
页面地址:
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方法对应的参数");
括号里的中文提示是什么意思啊?抓狂了快!