0

我正在尝试从特定网站上抓取经济日历。实际上,我尝试了很多次都没有成功,我不知道我错在哪里。你能帮我吗?


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HtmlAgilityPack;
using ScrapySharp.Extensions;
using ScrapySharp.Network;

namespace Calendar
{
    class Program
    {
        static void Main(string[] args)
        {
            var url = "https://www.fxstreet.com/economic-calendar";
            var webGet = new HtmlWeb();
            if (webGet.Load(url) is HtmlDocument document)
            {
                var nodes = document.DocumentNode.CssSelect("#fxst-calendartable tbody").ToList();
                foreach (var node in nodes)
                {
                    // event_time
                    Debug.Print(node.CssSelect("div div").Single().InnerText);
                    // event-title
                    Debug.Print(node.CssSelect("div a").Single().InnerText);
                }
            }
            Console.WriteLine("");
            Console.ReadLine()
        }
    }
}

4

1 回答 1

0

你遇到了什么错误?如果您想从网站上发布活动名称和时间,我假设您需要阅读表格。你可以这样做使用

HtmlNode tablebody = doc.DocumentNode.SelectSingleNode("//table[@class='fxs_c_table']/tbody");
    foreach(HtmlNode tr in tablebody.SelectNodes("./tr[@class='fxs_c_row']"))
    {
       Console.WriteLine("\nTableRow: ");
        foreach(HtmlNode td in tr.SelectNodes("./td"))
        {
           Console.WriteLine(td.SelectSingleNode("./span").InnerText);
        }

    }

获取具有类属性的表,然后使用相关的 XPATH 遍历元素。请发布您在代码中遇到的错误。

于 2019-11-11T17:15:49.897 回答