怎样抓取某带有分页信息时网页数据;

hongru_y 2007-10-26 03:04:53
如网址:http://huoche.name/TicketList.aspx?tid=<=&s=%E5%8C%97%E4%BA%AC&e=%E4%B8%8A%E6%B5%B7&t=-1
我的思路是:
1.由参数,获取本到本页数据。
2.用正则表达式分析数据并放入数据库中。
3.前台引用,若在数据库中,则直接读取;否则从页面抓取数据;

现在我遇到的问题是在这个例子当中,怎样抓取它的第二页,第三页....数据;
如果页面有总页数,地址栏有引用就好办多了,但是现在都没有的,请问高手如何解决这个问题,谢谢!
...全文
351 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
APPLESUCH5 2007-10-26
  • 打赏
  • 举报
回复
帮顶
hongru_y 2007-10-26
  • 打赏
  • 举报
回复
不知大哥采用什么方法获取到了它的post数据,是不是用visual sniffer工具呀?
hongru_y 2007-10-26
  • 打赏
  • 举报
回复
大家还有什么好的办法没有?帮顶,谢谢!
hongru_y 2007-10-26
  • 打赏
  • 举报
回复
非常感谢阿坤大哥的帮忙,我试一下看行不?
akunshenjk 2007-10-26
  • 打赏
  • 举报
回复
不过你可以根据采集来的页面里有没有"后10页"来判断是否采集到最后了
akunshenjk 2007-10-26
  • 打赏
  • 举报
回复
// string postData = "__VIEWSTATE="+System.Web.HttpContext.Current.Server.UrlEncode("/wEPDwUJODcxMjQyMzU2ZGT+jaawPMKbjThOxlwGYe+5BxfYQA==");
// postData += "&__EVENTVALIDATION="+System.Web.HttpContext.Current.Server.UrlEncode("/wEWBgK1y42BCwLc3tynBALc3uCnBALc3tSnBALc3tinBAKmp46bBAtocAmNR1c0tmcUJP+o2bkbnddh");
string postData = "ctl00$ContentPlaceHolder1$TextBox0=";
postData += "&ctl00$ContentPlaceHolder1$TextBox1=北京";// +System.Web.HttpContext.Current.Server.UrlEncode("");
postData += "&ctl00$ContentPlaceHolder1$TextBox2=上海";
postData += "&ctl00$ContentPlaceHolder1$TextBox3=";
postData += "&ctl00$ContentPlaceHolder1$SearchBtn=查询";
postData += "&page=2";
postData += "&t=-1";

byte[] data = System.Text.Encoding.UTF8.GetBytes(postData);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://huoche.name/TicketList.aspx");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
System.IO.Stream newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
System.IO.StreamReader reader = new System.IO.StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string content=reader.ReadToEnd();
textBox1.Text = content;


总共多少页,我也没发现.
delen2007 2007-10-26
  • 打赏
  • 举报
回复
刚才我打开这个网站看了,阿坤兄说的这个楼主应该也看到了吧!但是我就不明白如何判断总共是多少页?
akunshenjk 2007-10-26
  • 打赏
  • 举报
回复
你的问题倒是看清楚了,这个网站的分页是采用POST,进行分页的,所以你看不到页码.
因此,你要采集第二页以上的数据就要用POST把页码发送过去.你查看源代码,会发现里面有这么一句:<input type="hidden" name="page" value="1"/>
很显然,这就是当前页码.所以只要把这个值+1,再Post发送,就可以了.仅提供思路.
NewUser2008 2007-10-26
  • 打赏
  • 举报
回复
看不懂

62,054

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧