【问题标题】:How to read a page that uses JS to block scraping?如何读取使用 JS 阻止抓取的页面?
【发布时间】:2021-02-08 16:31:55
【问题描述】:

我正在使用 Xamarin (C#)。我尝试使用此代码在我的应用中获取我需要的数据:

String url = "http://mmehdirajabiigdl.gigfa.com/VideoImageDownloader.php?link=https://www.instagram.com/tv/CJ_YPTLJ8Zx/?igshid=1jcvto1p6ekxx";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
string mm = sr.ReadToEnd();

响应错误,因为此页面使用的 JS 会阻止我的代码获取 HTML 代码。 那么我该如何解决这个问题?我知道 WebRequest 没有“启用 JS”。也许我应该使用 WebBrowser,但 Xamarin 没有 WebBrowser。

【问题讨论】:

  • 如果您尝试从主动阻止它的页面中抓取数据,也许您应该考虑到您在法律上无权使用他们的数据?
  • @Jason 这是我自己的虚拟主机,但提供商没有禁用 JS,所以它总是阻止我抓取我自己的数据。转到另一个虚拟主机可能会解决这个问题,但我正在寻找方法在不将我的数据转移到另一个虚拟主机服务的情况下解决此问题。

标签: c# .net xamarin


【解决方案1】:

据我所知,HttpWebRequest 只是执行 HTTP 请求,您可以抓取静态 HTML。它不支持 JavaScript。

您可以使用 Xamarin Forms WebView 执行 Javascript。

更多详情,请查看以下链接。 https://www.xamarinhelp.com/xamarin-forms-webview-executing-javascript/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 2011-09-27
    相关资源
    最近更新 更多