在Linux上使用.NET Core构建网站和网络爬虫

随着Linux操作系统的普及和低成本特性,越来越多的开发者选择在Linux上构建和部署他们的应用程序。本文将介绍如何在Linux环境下使用.NET Core构建一个网站和一个网络爬虫,以及如何在Raspberry Pi上部署.NET Core应用程序。

为什么选择Linux和.NET Core

Linux是一个开源的操作系统,它不仅免费,而且可以在各种硬件上运行,包括服务器和嵌入式设备如Raspberry Pi。.NET Core是一个跨平台的开源框架,可以在Linux、Windows和macOS上运行。结合Linux和.NET Core,可以构建出既经济又高效的应用程序。

构建网站

选择在Ubuntu服务器上构建网站,因为Ubuntu是一个流行的Linux发行版,而且Linode提供了每月5美元的低价服务器。以下是构建网站的步骤:

  1. 安装Visual Studio 2017,并确保安装了“.NET Core跨平台开发”工作负载。可以下载免费的社区版。
  2. 在Visual Studio 2017中创建一个新的.NET Core控制台应用程序项目。
  3. 安装HtmlAgilityPack和Newtonsoft.Json NuGet包。HtmlAgilityPack是一个灵活的HTML解析器,支持XPATH和XSLT。
  4. 编写C#代码,使用HttpClient获取网站的HTML页面,并使用HtmlAgilityPack解析页面。
  5. 将解析出的数据发送到WebApi,更新网站。

以下是获取HTML页面并解析数据的C#代码示例:

HttpClient client = new HttpClient(); using (var response = await client.GetAsync(url)) { using (var content = response.Content) { var result = await content.ReadAsStringAsync(); var document = new HtmlDocument(); document.LoadHtml(result); var nodes = document.DocumentNode.SelectNodes("//div[@class='item-inner clearfix']"); var storeData = new List<store>(); foreach (var node in nodes) { Store _store = ParseHtml(node); storeData.Add(_store); } HttpResponseMessage resp = await client.PostAsJsonAsync<List<store>>( "http://www.fairnet.com/deal/api/stores", storeData); } }

解析HTML的方法:

private static Store ParseHtml(HtmlNode node) { var _store = new Store(); _store.Image = node.Descendants("img").ElementAt(imgIndex).OuterHtml; _store.Link = node.Descendants("a").Select(s => s.GetAttributeValue("href", "not found")).FirstOrDefault(); _store.Title = node.Descendants("a").ElementAt(titIndex).InnerText; _store.Price = node.Descendants("span").ElementAt(pricIndex).InnerText; _store.RetailPrice = node.Descendants("span").ElementAt(retpricIndex).InnerText; return _store; }

在Raspberry Pi上部署.NET Core应用程序

Raspberry Pi是一个低成本的单板计算机,非常适合运行Linux.NET Core应用程序。以下是在Raspberry Pi上部署.NET Core应用程序的步骤:

  1. 准备Raspberry Pi 3 Model B、HDMI线、USB鼠标/键盘、SD卡和2A USB电源。
  2. 下载并安装推荐的操作系统Raspbian。
  3. Raspberry Pi上安装.NET Core2。
  4. 配置Raspberry Pi,使其能够从开发机器连接。
  5. 找到Raspberry Pi的IP地址。
  6. 使用PUTTY从开发机器连接到Raspberry Pi。
  7. Raspberry Pi上安装.NET Core2。
  8. 创建.NET部署发布构建,针对linux-arm。
  9. 创建一个文件夹,使用FTP传输项目文件,然后运行应用程序。

以下是在Raspberry Pi上安装.NET Core 2的命令:

# 更新Raspbian安装 sudo apt-get -y update # 安装.NET Core所需的软件包 sudo apt-get -y install libunwind8 gettext # 下载.NET Core 2的夜间构建二进制文件 wget https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.0.0/dotnet-runtime-latest-linux-arm.tar.gz # 创建一个文件夹来存放.NET Core 2的安装 sudo mkdir /opt/dotnet # 将dotnet压缩包解压到安装文件夹 sudo tar -xvf dotnet-runtime-latest-linux-arm.tar.gz -C /opt/dotnet # 设置一个符号链接到路径上的目录,以便可以调用dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin

运行dotnet --info命令,查看在Raspbian上安装的版本。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485