我是.netcore知识的新手。最近,我对使用.netcore开发某些代码感兴趣,该代码的工作方式类似于skyscrapper.com。例如,当您在skyscanner上搜索任何内容时,它只需单击一下即可遍历多个站点,然后抓取或剪贴所需的数据,然后将其显示在网站上。 .netcore如何处理GET请求。 例如,如果我有5个不同的站点。 example1.com-example5.com。 最好的方法是什么?
我已经使用HttpAgilityPack在一个站点上尝试过。
private static async Task startCrawlerasync2()
{
var url = "https://www.automobile.tn/fr/neuf/bmw";
var httpClient = new HttpClient();
var html = await httpClient.GetStringAsync(url);
var htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(html);
var cars = new List<Cars>();
var divs = htmlDocument.DocumentNode.Descendants("div").Where(node => node.GetAttributeValue("class", "").Equals("versions-item")).ToList();
foreach (var div in divs)
{
var car = new Cars
{
Model = div.Descendants("h2").FirstOrDefault().InnerText,
Price = div.Descendants("div").FirstOrDefault().InnerText,
Link = div.Descendants("a").FirstOrDefault().ChildAttributes("href").FirstOrDefault().Value,
ImageUrl = div.Descendants("img").FirstOrDefault().ChildAttributes("src").FirstOrDefault().Value
};
cars.Add(car);
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(cars[i]);
}
}
答案 0 :(得分:0)
您可能需要使用诸如SignalR(或直接使用套接字)之类的技术,将请求运行到服务器上的5个网站,并在请求完成时更新UI。