利用Simple HTML DOM抓取ASP.NET网页

利用Simple HTML DOM抓取网页过程中遇到了asp.net开发的网站,它不改变url的情况下通过Post提交分页请求,并没有在url上直接反映出分页信息,另外Simple HTML DOM在官方介绍中也没有提及模拟Post请求,不过查看了它的代码后,它可以接受Stream Context作为第三个参数。

 

此外,ASP.NET网页翻页可以注意到它的三个重要参数:

  1. __VIEWSTATE ,这个应该是.net特有的,如果你再firebug中发现了它,并且他的值是一堆字符,这是.net的网站也没差了;
  2. __doPostBack方法,这个是asp.net页面自动生成一个javascript方法,包含两个参数,__EVENTTARGET,__EVENTARGUMENT,这两个参数可以参看页码对应的内容,因为点击翻页的时候,会将页码信息传给这两个参数;
  3. __EVENTVALIDATION参数

     

所以在模拟Post请求时,只要带上这三个参数即可。

下面就是PHP利用Simple HTML DOM网页抓取工具类,模拟Post请求,对ASP.NET网页进行翻页抓取的例子,其中__EVENTTARGET,__EVENTARGUMENT,__VIEWSTATE这三个参数不可少

 

 

Done!



4条评论

  1. 新用户836264说道:

    其实这方面我不是这专业的,我更希望有相关专业的同学能给出相对完

  2. 新用户836264说道:

    其实这方面我不是这专业的,我更希望有相关专业的同学能给出相对完

  3. 新用户836264说道:

    其实这方面我不是这专业的,我更希望有相关专业的同学能给出相对完

  4. 新用户836264说道:

    其实这方面我不是这专业的,我更希望有相关专业的同学能给出相对完

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

无觅相关文章插件,快速提升流量