AngleSharpで属性の値を取得する方法

AngleSharpで属性の値を取得する方法について紹介します。この記事では、href属性の値を取得してみます。

0. この記事のまとめ

属性の値は、GetAttribute("属性名") で取得できます。

href属性を取得するには、

GetAttribute("href")

で、取得することができます。

1. AngleSharpとは

AngleSharp は、オープンソースの.net HTMLパーサーライブラリで、ウェブスクレイピングができるライブラリです。

2. Aタグのhref属性を取得するソースコード全文

using System;

using AngleSharp;
using AngleSharp.Html.Parser;
using System.Net;
using System.Threading.Tasks;


static void Main(string[] args)
{
    Console.WriteLine("Hello World!");
    Task t =  WebscrapingSample();
}


static async Task WebscrapingSample()
{

    var urlstring = "https://usefuledge.com";

    WebClient wc = new WebClient();
    try
    {
        string htmldocs = wc.DownloadString(urlstring);
        

        var config = Configuration.Default;
        var context = BrowsingContext.New(config);
        var document = await context.OpenAsync(req => req.Content(htmldocs));

        foreach ( var item in document.QuerySelectorAll("a"))
        {
            Console.WriteLine(item.TextContent.Trim() + " " + item.GetAttribute("href"));
        }


    }
    catch (System.Exception)
    {
        throw;
    }
}

以下のように出力されれば、成功です。

Useful Edge /
Menu
Close
Home /
about me /profile.html
Archives /archives/index.html
仕事の依頼 /appdev.html
お問い合わせ /contact.html
ExecNoteでNodeJSコードスニペットを管理しよう /execnote-start-nodejs.html
9月 7, 2020 /execnote-start-nodejs.html
 #1-ExecNoteとは?
https://execnote.app/ https://execnote.app/
 #2-ドキュメントと一緒に保存できる
 #3-ExecNoteで新しいファイルを作成しよう
 #4-カレントディレクトリはどこ?
 #3-標準出力
 #4-コード実行方法
 #5-コード実行前に確認画面を表示するには?
 #5-乱数生成
 #6-forループ
 #8-おわりに
 https://execnote.app
https://execnote.app/ https://execnote.app/
Tweet https://twitter.com/share?ref_src=twsrc%5Etfw
 https://b.hatena.ne.jp/entry/
 https://execnote.app/index.html
≫ExecNote のダウンロードはこちらから https://execnote.app/index.html
≫プロフィールはこちら /profile.html
≫システム開発のご依頼はこちら /appdev.html
≫お問い合わせはこちら /contact.html
≫Twitter https://twitter.com/Harus0313/
ExecNote /tags/ExecNote/index.html

3. href属性を取得するコード

href 属性は以下のコードで取得しています。

foreach ( var item in document.QuerySelectorAll("a"))
{
    Console.WriteLine(item.TextContent.Trim() + " " + item.GetAttribute("href"));
}

foreach文で、Aタグを抽出して1レコードずつループします。item変数に格納されます。

foreach ( var item in document.QuerySelectorAll("a"))
{
    ...
}

href属性の値はitem.GetAttribute("href")で取得します。

以下のコードで、Aタグ内のテキストと、href属性の値を標準出力に出力します。

Console.WriteLine(item.TextContent.Trim() + " " + item.GetAttribute("href"));

速攻でメモできる QuickNote リリースしました!

QuickNoteは動作が超軽量でサクサクかけるノートアプリです。一瞬の閃きを逃さずにノートを開き書き始めることができます。 アカウント登録も不要です。お試しあれ!

Excel操作をコマンドで! proBoarderExcel

Excelはマウスで操作するのが基本ですが、マウス操作に疲れてはいませんか? キーボードでExcel操作ができるようになるアプリです。オープンソースで無料です。

積み上げ! Daily Stack リリースしました!

Daily Stack は日々の積み上げを管理するToDoアプリです。過去の積み上げの振り返りだけでなく、ツイート機能もあります。 アカウント登録不要ですぐに使い始めることができます。

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱