Le projet en question doit capturer les données d'un site Web rendu avec js. La page capturée à l'aide du client http couramment utilisé ne contient aucune donnée. Après recherche sur Baidu, la solution recommandée par tout le monde est d'utiliser PhantomJS. PhantomJS est un navigateur webkit sans interface, qui peut utiliser js pour afficher des pages avec le même effet que le navigateur. Selenium est un framework de tests Web. Utiliser Selenium pour faire fonctionner PhantomJS est une combinaison parfaite. Mais la plupart des exemples sur Internet sont en Python. Impuissant, j'ai téléchargé Python et suivi le tutoriel, mais je suis resté bloqué sur le problème d'importation de Selenium. J’ai donc abandonné et décidé d’utiliser mon C# habituel, car je ne pensais pas qu’il n’était pas disponible en C#. Après une demi-heure de bidouille, j'ai réussi (une heure à bidouiller avec python). Enregistrez ce billet de blog afin que les novices en c# comme moi puissent utiliser PhantomJS.
Première étape : ouvrez Visual Studio 2017, créez un nouveau projet de console et ouvrez le gestionnaire de packages nuget.
Partie 2 : Recherchez Selenium et installez Selenium.WebDriver. Remarque : Si vous souhaitez utiliser un proxy, il est préférable d'installer la version 3.0.0.
Étape 3 : Écrivez le code comme indiqué ci-dessous. Mais une erreur sera signalée lors de l'exécution. La raison est que PhantomJS.exe est introuvable. À ce stade, vous pouvez en télécharger un ou passer à l’étape quatre.
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; } } }
Étape 4 : Ouvrez nuget pour installer le package Selenium.PhantomJS.WebDriver.
Étape 5 : Courez. Vous pouvez voir que phantomjs.exe est automatiquement téléchargé.
D'accord, vous pouvez maintenant démarrer votre activité de capture de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!