Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Diseñado para C#, F# Y VB.NET funcionando en .NET 8, 7, 6, Core, Estándar o 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
<p>IronWebScraper proporciona un potente marco para extraer datos y archivos de sitios web utilizando código C#.</p> <ol> <li> <p>Instale IronWebScraper en su proyecto utilizando<a href="https://www.nuget.org/packages/IronWebScraper/" target="_blank" rel="nofollow noopener noreferrer">NuGet</a></p> </li> <li> <p>Crear una clase que extienda <code>WebScraper</code>.</p> </li> <li> <p>Crea un método <code>Init</code> que utilice el método <code>Request</code> para analizar al menos una URL.</p> </li> <li> <p>Crear un método <code>Parse</code> para procesar las peticiones, y de hecho <code>Request</code> más páginas. Utilizar response.Css para trabajar con elementos HTML utilizando selectores CSS de estilo jQuery.</p> </li> <li> <p>En su aplicación, cree una instancia de su clase web scraping y llame al comando `Start()Método</p> </li> <li>Lea nuestro<a href="/csharp/webscraper/tutorials/webscraping-in-c-sharp/" target="_blank" rel="nofollow noopener noreferrer">Tutoriales de webscraping en C</a> para aprender a crear rastreadores web avanzados con IronWebScraper</li> </ol>
Ya se trate de consultas sobre productos, integración o licencias, el equipo de desarrollo de productos de Iron está a su disposición para responder a todas sus preguntas. Póngase en contacto e inicie un diálogo con Iron para sacar el máximo partido de nuestra biblioteca en su proyecto.
Formule una preguntaSimplemente escriba una sola clase C# web-scraper para scrapear miles o incluso millones de páginas web en Instancias de Clase C#, JSON o Archivos Descargados. IronWebScraper le permite codificar flujos de trabajo concisos y lineales simulando el comportamiento de navegación humano. IronWebScraper ejecutará su código como un enjambre de navegadores web virtuales, masivamente paralelos, pero educados y tolerantes a fallos.
Empezar con la documentaciónIronWebScraper debe ser programado para saber cómo manejar cada "tipo" de página que encuentra. Esto se consigue de forma muy concisa utilizando selectores CSS o expresiones XPath y puede personalizarse completamente en C#. Esta libertad le permite decidir qué páginas raspar dentro de un sitio web y qué hacer con los datos extraídos. Cada método puede depurarse y observarse perfectamente en Visual Studio.
Seguir un tutorialIronWebScraper se ocupa del multithreading y de las peticiones web para permitir cientos de hilos concurrentes sin que el desarrollador tenga que gestionarlos. Politeness puede configurarse para acelerar las solicitudes, reduciendo así el riesgo de carga excesiva en los servidores web de destino.
En marcha con WebScraperIronWebScraper puede utilizar una o múltiples "identidades" - sesiones que simulan peticiones humanas del mundo real. Cada solicitud puede asignar de forma programática o aleatoria su propia identidad, agente de usuario, cookies, inicios de sesión e incluso direcciones IP. Las peticiones se configuran como auto-únicas con una combinación de URL, método de análisis y variables post.
See API ReferenceIronWebScraper utiliza el almacenamiento en caché avanzado para permitir a los desarrolladores cambiar su código "sobre la marcha" y reproducir cada solicitud anterior sin contactar con Internet. Cada trabajo de scrape se guarda automáticamente y se puede reanudar en caso de excepción o corte de energía.
Instrucciones de instalación de WebScraperIronWebScraper pone las herramientas de Web Scraping en sus propias manos rápidamente con un instalador de Visual Studio. Ya sea instalando directamente desde NuGet dentro de visual studio o descargando la DLL, estarás configurado en poco tiempo. Sólo una DLL y sin dependencias.
PM > Install-Package IronWebScraper Descargar DLLVB C# ASP.NET
Vea cómo Ahmed utiliza IronWebScraper en sus proyectos para migrar contenidos de un sitio a otro. Proyectos de ejemplo y código proporcionado para raspar sitios web de comercio electrónico y blogs.
Ver el tutorial de WebScraping de AhmedEl equipo de Iron cuenta con más de 10 años de experiencia en el mercado de componentes de software .NET.
9 productos API .NET para sus documentos de oficina