我想在 c# 中编写一个 html 刮板,它可以从我想要的页面中获取链接或其他目标字符串。
我刚开始就直接遇到了一个问题:我不知道如何在类中分离代码,所以我可以使用不同的搜索引擎。
这是我当前的代码:
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/...'));
或类似的东西。
提前感谢您的帮助。