将网页上的表格中的文本复制到C#中的字符串中

时间:2019-02-24 18:59:13

标签: c#

我需要像这样列出一个列表:List> 我想从此website的表中复制内容。

更具体地说,我希望第一个字符串中的languange 1中的单词和第二个字符串中的languange 2中的单词,然后对该表中的每个单词执行此操作。

我想只输入一个URL就可以做到这一点,因为我想这样做更多。

这可能很容易,但是我之前从未做过这样的事情,如果这个问题很琐碎,请对不起。 另外,请原谅我的英语不是我的母语。 预先感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用AngleSharp

 public static async Task Main(string[] args)
 {
    List<WordCls> wordList = new List<WordCls>();

    IBrowsingContext context = BrowsingContext.New(Configuration.Default.WithDefaultLoader());
    Url url = Url.Create("http://1000mostcommonwords.com/1000-most-common-afrikaans-words");
    IDocument doc = await context.OpenAsync(url);
    IElement tableElement = doc.QuerySelector("table");
    var trs = tableElement.QuerySelectorAll("tr");

    foreach (IElement tr in trs.Next(selector: null))
    {
        var tds = tr.QuerySelectorAll("td");
        WordCls word = new WordCls
        {
            Number = Convert.ToInt32(tds[0].Text()),
            African = tds[1].Text(),
            English = tds[2].Text()
        };

        wordList.Add(word);
    }

    Console.WriteLine(wordList.Count);

}

public class WordCls
{
    public int Number { get; set; }
    public string African { get; set; }
    public string English { get; set; }
}

答案 1 :(得分:0)

您可以签出C#的HTMLAgility包。它也是爬网内容的强大工具。您可以在这里https://html-agility-pack.net/from-web

找到足够的信息