用PHP如何抓取.NET开发的分页控件的数据?
程序员文章站
2023-12-22 18:21:04
...
比如在
http://121.28.49.84:8003/
以上网页,左边任选一个企业,点击右侧顶部的“监测数据”,可以看到它是用.NET控件做的分页,监控网络请求发现其每次都回发整个网页,且带有viewstate的值,很难模拟。而且采用了UpdatePanel控件,并非向其他接口请求数据。
我的目的是想自动抓取右侧的监测数据,请问有什么办法可以实现抓取这个页面的分页所有数据?
P.S.服务器环境是LAMP
看它的返回数据就知道了,每次将返回的数据再提交上去。
http://121.28.49.84:8003/
以上网页,左边任选一个企业,点击右侧顶部的“监测数据”,可以看到它是用.NET控件做的分页,监控网络请求发现其每次都回发整个网页,且带有viewstate的值,很难模拟。而且采用了UpdatePanel控件,并非向其他接口请求数据。
我的目的是想自动抓取右侧的监测数据,请问有什么办法可以实现抓取这个页面的分页所有数据?
P.S.服务器环境是LAMP
回复讨论(解决方案)
他 就是 AJAX 获取数据,你找到那个AJAX URL连接就可以了,其他根据传参 来的
他的AJAX是用.NET控件的UpdatePanel,实际上是向当前页面自身去请求,这样会导致整个页面的postback,并非是请求另外一个接口地址。
向自身请求时,viewstate非常复杂和难以拼写,而且我通过PHP外部提交的貌似还通不过验证,不知道是哪里的问题。
他的AJAX是用.NET控件的UpdatePanel,实际上是向当前页面自身去请求,这样会导致整个页面的postback,并非是请求另外一个接口地址。
向自身请求时,viewstate非常复杂和难以拼写,而且我通过PHP外部提交的貌似还通不过验证,不知道是哪里的问题。
看它的返回数据就知道了,每次将返回的数据再提交上去。
抓取上一个页面,获取数据的同时要获取_viewstate 和_E开头的两个值,拿到这两个值才能继续下一页抓取。没办法多线程抓取了。不知道微软为何有这样的傻Ⅹ设计。这两个值通常都很长,服务器资源是节省了,但是很浪费网络资源很影响用户体验。