前提・実現したいこと
C#のフォームアプリケーションで
取得したWEBページのソースを解析して、
任意の文字列がある行のみ抜き出したファイルを生成したいです。
求人サイトのURLから、
会社名のみを抽出をしたいです。
それができたらテキストボックスで会社名を指定し、
該当の会社名の情報を取得し、ファイルに保存するという処理をしたいです。
今回は全ての会社名を抜き出す処理を実現したいです。
発生している問題・エラーメッセージ
WEBページのソースを取得することはできたのですが、解析ができないです。
取得したHTMLをParseDocumentで解析したら、会社名ではなく
AngleSharp.Html.Dom.HtmlParagraphElement
という文字列が代入されてしまいます。
該当のソースコード
C#
1 private void ParseHtmlButton_Click(object sender, EventArgs e) 2 { 3 string Url = UrlNameTextbox.Text; 4 5 var scraping = new Scraping(); 6 7 //htmlには正しくHTMLが入る 8 string html = scraping.GetData(Url); 9 10 var parser = new HtmlParser(); 11 12 //docにAngleSharp.Html.Dom.HtmlParagraphElement という文字列が入ってしまう 13 var doc = parser.ParseDocument(html); 14 15 var companyList = doc.GetElementsByClassName("company"); 16 17 using (var wt = new StreamWriter(@"get.txt", false, Encoding.GetEncoding("shift_jis"))) 18 { 19 foreach (var c in companyList) 20 { 21 //生成されたファイルを確認すると AngleSharp.Html.Dom.HtmlParagraphElement が複数行入力されている 22 wt.WriteLine(c); 23 } 24 } 25 }
HTML取得のクラス
Scrapingcs
1 public String GetData(string Url) 2 { 3 HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(Url); 4 WebResponse myRes = myReq.GetResponse(); 5 6 using (var rd = new StreamReader(myRes.GetResponseStream(), Encoding.GetEncoding("shift_jis"))) 7 { 8 string result = rd.ReadToEnd(); 9 return result; 10 } 11 12 }
試したこと
基本的に下記サイトを参考にしました。
https://emotionwave.hatenablog.com/entry/2020/01/31/100000
ParseDocument ではなく、 Parse を使用しているサイトがあったので、
使用したところCS1061エラーが出ました。
補足情報(FW/ツールのバージョンなど)
AngleSharp 0.14.0
VisualStudio 2019
回答1件
あなたの回答
tips
プレビュー