AngleSharpで属性の値を取得する方法について紹介します。この記事では、href属性の値を取得してみます。
0. この記事のまとめ
属性の値は、GetAttribute("属性名") で取得できます。
href属性を取得するには、
GetAttribute("href")
で、取得することができます。
1. AngleSharpとは
AngleSharp は、オープンソースの.net HTMLパーサーライブラリで、ウェブスクレイピングができるライブラリです。
-
AngleSharp 1.0.7AngleSharp is the ultimate angle brackets parser library. It parses HTML5, CSS3, and XML to construct a DOM based on the official W3C specification.
-
GitHub - AngleSharp/AngleSharp: :angel: The ultimate angle brackets parser library parsing HTML5, MathML, SVG and CSS to construct a DOM based on the official W3C specifications.:angel: The ultimate angle brackets parser library parsing HTML5, MathML, SVG and CSS to construct a DOM based on the official W3C specifications. - GitHub - An...
-
https://github.com/AngleSharp/AngleSharp/blob/master/doc/Examples.md
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"));
コメント