In diesem Artikel werden hauptsächlich die Methoden und Schritte von C# mit Selenium+PhantomJS zum Erfassen von Daten vorgestellt. Schauen wir uns das mit dem Editor an.
Anforderungen für das jeweilige Projekt Erfassen Sie Daten von einer mit js gerenderten Website. Die mit dem häufig verwendeten httpclient erfasste Seite enthält keine Daten. Nach der Suche auf Baidu ist die von allen empfohlene Lösung die Verwendung von PhantomJS. PhantomJS ist ein Webkit-Browser ohne Schnittstelle, der js zum Rendern von Seiten mit dem gleichen Effekt wie der Browser verwenden kann. Selenium ist ein Webtest-Framework. Die Verwendung von Selenium zum Betrieb von PhantomJS passt perfekt. Aber die meisten Beispiele im Internet sind in Python. Hilflos lud ich Python herunter und folgte dem Tutorial, blieb aber beim Selenium-Importproblem hängen. Also gab ich auf und beschloss, mein übliches C# zu verwenden, weil ich nicht glaubte, dass es in C# nicht verfügbar war. Nach einer halben Stunde Fummelei habe ich es geschafft (eine Stunde Fummelei mit Python). Zeichnen Sie diesen Blogbeitrag auf, damit C#-Neulinge wie ich PhantomJS verwenden können.
Schritt eins: Öffnen Sie Visual Studio 2017, erstellen Sie ein neues Konsolenprojekt und öffnen Sie den Nuget-Paketmanager.
Teil 2: Nach Selenium suchen und Selenium.WebDriver installieren. Hinweis: Wenn Sie einen Proxy verwenden möchten, installieren Sie am besten die Version 3.0.0.
Schritt 3: Schreiben Sie den Code wie unten gezeigt. Bei der Ausführung wird jedoch ein Fehler gemeldet. Der Grund dafür ist, dass PhantomJS.exe nicht gefunden werden kann. Zu diesem Zeitpunkt können Sie eines herunterladen oder mit Schritt vier fortfahren.
using OpenQA.Selenium; using OpenQA.Selenium.PhantomJS; using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var url = "http://www.baidu.com"; IWebDriver driver = new PhantomJSDriver(GetPhantomJSDriverService()); driver.Navigate().GoToUrl(url); Console.WriteLine(driver.PageSource); Console.Read(); } private static PhantomJSDriverService GetPhantomJSDriverService() { PhantomJSDriverService pds = PhantomJSDriverService.CreateDefaultService(); //设置代理服务器地址 //pds.Proxy = $"{ip}:{port}"; //设置代理服务器认证信息 //pds.ProxyAuthentication = GetProxyAuthorization(); return pds; } } }
Schritt 4: Öffnen Sie Nuget, um das Selenium.PhantomJS.WebDriver-Paket zu installieren.
Schritt 5: Ausführen. Sie können sehen, dass phantomjs.exe automatisch heruntergeladen wird.
Okay, jetzt können Sie mit Ihrem Datenerfassungsgeschäft beginnen.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Fall von C# mit Selenium+PhantomJS zur Erfassung von Daten (Bilder und Texte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!