【问题标题】:Jquery Ajax Web page scraping using c#使用 c# 进行 Jquery Ajax 网页抓取
【发布时间】:2012-12-25 08:20:58
【问题描述】:

我尝试使用 c#.net 3.5 应用程序废弃网页,但由于某些内容通过 jquery Ajax 显示,因此我无法废弃整页。

see this

这是我的代码

 private void button1_Click(object sender, EventArgs e)
    {
        string url = "http://www.racingpost.com/greyhounds/result_home.sd#resultDay=2012-12-16&meetingId=18&isFullMeeting=true";

        WebClient w = new WebClient();
        string s = w.DownloadString(url);


    }

我认为我需要 Ajax 显示的网站上的比赛结果。

【问题讨论】:

  • 我找到了问题的替代方案,但不是我的问题。我直接使用 ajax url racingpost.com/greyhounds/… 所以它为我解决了但是我们可以使用 ajax url 吗??
  • 您能否在上一条评论中进一步解释这个问题? (“我们可以用 ajax url 做什么?”是什么意思?)

标签: c# ajax web-scraping


【解决方案1】:

http://www.racingpost.com/greyhounds/result_by_meeting_full.sd?r_date=2012-12-16&meeting_id=18

如果您的网络浏览器使用 Chrome,您可以打开开发者工具 (F12) 并查看“网络”标签以查看页面加载后需要哪些资源。上面的 URL 是我注意到的 URL 之一,它似乎获得了一些结果。如果您知道或可以解析日期和 meeting_id,您可能可以像使用主页一样直接拨打电话。

另一个可能的选择是使用实际的web browser control 并在所有内容加载完成后扫描 DOM。

【讨论】:

  • 是的,它的帮助已经完成并找到了解决方案,但我们可以不这样做。仅使用 c# 代码?
【解决方案2】:

我认为您需要使用 System.Net 命名空间。
你需要做的是在这样的帮助下创建HttpRequest

WebRequest webRequest = WebRequest.Create("http://www.racingpost.com/greyhounds/result_home.sd#resultDay=2012-12-16&meetingId=18&isFullMeeting=true");
WebResponse webResp = webRequest.GetResponse();

我想这也会对 Ajax 数据给出完整的响应。

【讨论】:

    猜你喜欢
    • 2018-10-24
    • 2010-12-28
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2020-11-07
    • 2018-02-06
    • 2017-06-23
    • 2011-03-13
    相关资源
    最近更新 更多