我想为WP8创建一个显示网页内容的应用程序。我尚未编写代码,但是我知道我可以使用xpath获取页面内容。我的问题是我要带的内容不在单个页面中。我必须按“下一步”按钮转到下一页。按钮的代码是这个。
<td class="pager-next" style="padding:0;margin:0;">
<a id="ctl00_ContentPlaceHolder1_LinkButton2" class="buttondiego buttondiego_small buttondiego_arrow" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$LinkButton2','')"></a>
</td>
这是标头中的JS函数:
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
是否可以使用我的代码转到下一页?我应该怎么做?
最佳答案
您要么必须:
深入分析其JavaScript,并对所需的POST值进行一些反向工程以获取特定页面。您可以使用Firebug或Chrome开发者工具网络视图查看发送了哪些请求。该网址肯定是
<http://www.starcomics.com/UsciteMensili.aspx?AspxAutoDetectCookieSupport=1
但只需发布受监视的“有趣的外观”字段
__ASYNCPOST:true
__EVENTTARGET=ctl00$ContentPlaceHolder1$DataPager2$ctl00$lnkNextPage
还不够。
另外,您可以使用一些无头的浏览器实现,该实现实际上执行JavaScript。它们的设置会更加复杂,性能也会降低,但是您不必再担心加载页面背后的逻辑。我认为最常用的无头浏览器是PhantomJS,但是我不知道是否以及如何将其与Windows Phone和C#一起使用,您可能希望在自己的服务器上进行设置并代理数据。