刮刮单页网站

时间:2017-12-23 22:56:01

标签: c# web-scraping

我想从bet365.com获取数据,但问题是当我下载页面源时,页面源不包含该数据。当我搜索时,在单页面应用程序中,所有内容都不会立即加载。我尝试了下面的代码但是没有获得所需的数据。有人可以帮忙吗?

IHttpContextAccessor

2 个答案:

答案 0 :(得分:1)

使用浏览器开发工具的“网络”选项卡查看他们调用的REST端点以获取数据。然后不是直接抓取html调用端点并获取数据。

答案 1 :(得分:0)

您可以尝试设置延迟事件/计时器,以检查页面是否有新数据/ html的可用性。然后使用你自己编写的函数,就像你有wb_DocumentCompleted一样。不是非常有效,但非常准确。祝你好运!..

protected System.Timers.Timer MonitorTimer = new System.Timers.Timer();
public void Initialize()
{
    MonitorTimer.Elapsed += new ElapsedEventHandler(UpdateEvent);
    MonitorTimer.Interval = 1000;
    MonitorTimer.Enabled = true;
}
protected object TimerLock = new object();
public void UpdateEvent(object source, ElapsedEventArgs e)
{
    lock (TimerLock)
    {
        doc = (mshtml.HTMLDocument)wbProfile.Document;
        // What you are looking for that only appears later. -->
        if(doc.body.innerHTML.toString().IndexOf("foo") != -1) 
        {
            // Do something useful..
        }
    }
}