在生產環境中無水印測試。
無論您需要它在哪裡運作都可以。
取得30天的完全功能產品。
幾分鐘內即可上手並運行。
在您的產品試用期間,獲得完整的工程師支援
using IronWebScraper;
public class Program
{
private static void Main(string[] args)
{
var ScrapeJob = new BlogScraper();
ScrapeJob.Start();
}
}
public class BlogScraper : WebScraper
{
public override void Init()
{
LoggingLevel = LogLevel.All;
Request("https://www.zyte.com/blog/", Parse);
}
public override void Parse(Response response)
{
foreach (HtmlNode title_link in response.Css(".oxy-post-title"))
{
string strTitle = title_link.TextContentClean;
Scrape(new ScrapedData() { { "Title", strTitle } });
}
if (response.CssExists("div.oxy-easy-posts-pages > a[href]"))
{
string next_page = response.Css("div.oxy-easy-posts-pages > a[href]")[0].Attributes["href"];
Request(next_page, Parse);
}
}
}
Install-Package IronWebScraper
設計為C#, F#, & VB.NET運行於.NET 10, 9, 8, 7, 6, 5, Core, Standard,或 Framework
using IronWebScraper;
public class Program
{
private static void Main(string[] args)
{
var ScrapeJob = new BlogScraper();
ScrapeJob.Start();
}
}
public class BlogScraper : WebScraper
{
public override void Init()
{
LoggingLevel = LogLevel.All;
Request("https://www.zyte.com/blog/", Parse);
}
public override void Parse(Response response)
{
foreach (HtmlNode title_link in response.Css(".oxy-post-title"))
{
string strTitle = title_link.TextContentClean;
Scrape(new ScrapedData() { { "Title", strTitle } });
}
if (response.CssExists("div.oxy-easy-posts-pages > a[href]"))
{
string next_page = response.Css("div.oxy-easy-posts-pages > a[href]")[0].Attributes["href"];
Request(next_page, Parse);
}
}
}
Imports IronWebScraper
Public Class Program
Public Shared Sub Main(ByVal args() As String)
Dim ScrapeJob = New BlogScraper()
ScrapeJob.Start()
End Sub
End Class
Public Class BlogScraper
Inherits WebScraper
Public Overrides Sub Init()
LoggingLevel = LogLevel.All
Request("https://www.zyte.com/blog/", AddressOf Parse)
End Sub
Public Overrides Sub Parse(ByVal response As Response)
For Each title_link As HtmlNode In response.Css(".oxy-post-title")
Dim strTitle As String = title_link.TextContentClean
Scrape(New ScrapedData() From {
{ "Title", strTitle }
})
Next title_link
If response.CssExists("div.oxy-easy-posts-pages > a[href]") Then
Dim next_page As String = response.Css("div.oxy-easy-posts-pages > a[href]")(0).Attributes("href")
Request(next_page, AddressOf Parse)
End If
End Sub
End Class
Install-Package IronWebScraper
IronWebScraper 提供了一個強大的框架,可以使用 C# 程式碼從網站中提取資料和檔案。
WebScraper 的類別。Init 方法,該方法使用 Request 方法解析至少一個 URL。Parse 方法來處理請求,實際上 Request 更多頁面。 使用 response.Css 來使用 jQuery 風格的 CSS 選擇器處理 HTML 元素。Start(); 方法。
只需編寫一個 C# 網路爬蟲類別即可將成千上萬甚至數百萬的網頁抓取到 C# 類別實例、JSON 或下載文件中。IronWebScraper 允許您編寫簡明、線性的工作流程,模擬人類的瀏覽行為。IronWebScraper 將您的代碼作為一群虛擬網絡瀏覽器運行,大量併行,但卻禮貌而容錯。
開始使用文檔
IronWebScraper 必須被編程以知道如何處理它遇到的每種“類型”的頁面。這可以通過很簡明的方式使用 CSS 選擇器或 XPath 表達式來實現,並且可以在 C# 中完全自定義。這種自由使得您可以決定在哪個網站內抓取哪些頁面,以及對提取的資料進行何種操作。每種方法都可以在 Visual Studio 中使用調試和觀看。
跟隨教程IronWebScraper 處理多執行緒和網絡請求,以允許數百個同時進行的執行緒而無需開發人員管理它們。可以設置禮貌以限制請求,從而減少目標網頁伺服器上的過載風險。
使用 WebScraper 啟動
IronWebScraper 可以使用一個或多個“身份” - 模擬現實世界人類請求的會話。每個請求都可以以編程方式或隨機分配其自己的身份、用戶代理、Cookie、登入甚至是 IP 地址。請求被設置為自動唯一,使用 URL、解析方法和發佈變量的結合。
See API ReferenceIronWebScraper 使用高級快取,使開發人員能夠“即時”更改其代碼並重播每個先前的請求而不聯網。每個爬取任務自動保存,並且在發生異常或停電時可以恢復。
WebScraper 設置說明IronWebScraper 使用 Visual Studio 安裝程序快速將網路爬蟲工具掌握在您手中。無論是在 Visual Studio 中直接從 NuGet 安裝還是下載 DLL,您都可以毫不費力地安裝。只需一個 DLL 且無需依賴。
PM > Install-Package IronWebScraper 下載DLL
VB C# ASP.NET
查看 Ahmed 如何在他的專案中使用 IronWebScraper 從一個網站遷移內容到另一個網站。為電子商務和博客網站的爬取提供示例專案和代碼。
查看 Ahmed 的網絡爬蟲教程
Iron 的團隊有超過 10 年的 .NET 軟件組件市場經驗。