netcore写一个爬虫
时间: 2023-03-22 12:00:52 浏览: 83
.NET Core基于SQL Server数据库实现读写分离源码下载
以下是使用 .NET Core 编写一个简单的爬虫的示例代码:
```csharp
using System;
using System.Net.Http;
using System.Text.RegularExpressions;
class Program
{
static async Task Main(string[] args)
{
// 创建 HttpClient 对象
var client = new HttpClient();
// 发送 GET 请求
var response = await client.GetAsync("https://www.example.com");
// 读取响应内容
var content = await response.Content.ReadAsStringAsync();
// 从响应内容中提取链接
var links = ExtractLinks(content);
// 输出链接
foreach (var link in links)
{
Console.WriteLine(link);
}
}
static List<string> ExtractLinks(string content)
{
var links = new List<string>();
// 匹配链接的正则表达式
var regex = new Regex(@"<a\s+href\s*=\s*""(?<url>[^""]*)""");
// 在响应内容中查找链接
foreach (Match match in regex.Matches(content))
{
var url = match.Groups["url"].Value;
// 将相对链接转换为绝对链接
if (!Uri.TryCreate(url, UriKind.Absolute, out Uri absoluteUri))
{
absoluteUri = new Uri(new Uri("https://www.example.com"), url);
}
links.Add(absoluteUri.ToString());
}
return links;
}
}
```
上述代码会向 https://www.example.com 发送一个 GET 请求,并从响应内容中提取所有链接。它使用 HttpClient 类发送请求,并使用正则表达式从响应内容中提取链接。注意,这只是一个简单的示例,实际的爬虫可能需要更复杂的逻辑来处理不同类型的响应内容和链接。
阅读全文