【问题标题】:Get Windows Phone Market html code获取 Windows Phone Market html 代码
【发布时间】:2014-09-10 22:18:01
【问题描述】:

我想从 windows phone 市场页面获取 html 代码。到目前为止,我还没有遇到任何问题,但是今天每次检索数据时都会显示以下错误。

[...] 您的请求似乎来自自动化流程。 如果这不正确,请单击此处通知我们以重定向 [...]。

我尝试使用代理以防从一个 IP 调用多个请求,但这不会带来任何进展。你碰巧知道为什么会出现这个问题,关于可能的出路有什么想法吗?任何帮助将不胜感激。主要目标是以某种方式从市场上获取有关 Windows Phone 应用程序的信息。

【问题讨论】:

  • 您使用什么技术来获取 html?哪种命令、语言、方式?显然,此限制自 2014 年 7 月 9 日起生效。 (那时,我的 php 脚本 (file_get_contents) 停止工作。Curl 也被阻止了。
  • 我使用 C#。上个月我一直在搞乱我的应用程序,但今天在几次调用检索 html 代码后,我收到了警告。
  • 也许可以欺骗页面并将其加载到 webView 中。从那里您应该能够调用脚本document.documentElement.outerHtml 并获取应用程序的内容。只是一个想法浮现在我的脑海......
  • 如果不是 IP,他们可能会阻止什么。我正在编写 ASP.NET 应用程序,因此无法访问 WebView。

标签: windows-phone-8 windows-phone


【解决方案1】:

他们似乎检测到用户代理并阻止请求,如果它对设备无效/已知。 我设法使它与 curl 一起使用,例如。 curl -A 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9' http://www.windowsphone.com/en-us/store/app/pinpoint-by-foundbite/ff9fdf41-aabd-4cac-9086-8710bd327da9

对于asp.net,如果你使用HttpRequest获取html内容,尝试如下:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9";

对于 PHP,您也可以通过 curl_setopt 设置您的用户代理。

在多次请求后我无法查明是否存在基于 IP 的块。

【讨论】:

  • 谢谢。真的很有帮助。
猜你喜欢
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多