必要なページからリンクやその他のターゲット文字列を取得できる HTML スクレーパーを c# でコーディングしたいと考えています。
私は始めたばかりで、すぐに問題に遭遇しました。クラスでコードを分離する方法がわからないため、さまざまな検索エンジンを使用できます。
これは私の現在のコードです:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Net;
using HtmlAgilityPack;
namespace Scraper.Components
{
class Scraper
{
public Scraper()
{
WebClient client = new WebClient();
client.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)");
HtmlDocument doc = new HtmlDocument();
doc.Load(client.OpenRead("xxx"));
HtmlNode rootNode = doc.DocumentNode;
HtmlNodeCollection adNodes = rootNode.SelectNodes("//a[@class='ad-title']");
foreach(HtmlNode adNode in adNodes) {
Debug.WriteLine(
adNode.Attributes["href"].Value
);
}
}
}
}
私の意図は、以下のコード全体をclient.Headers.Add
独立したクラスに分離することです。たとえば、次のように呼び出すことができます。
Scraper scraper = new Scraper(new GoogleSE('http://google.com/...'));
またはそのようなもの。
事前にご協力いただきありがとうございます。