Explication détaillée de C# utilisant Selenium+PhantomJS pour capturer des données

迷茫
Libérer: 2017-03-26 16:29:48
original
3940 Les gens l'ont consulté

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;
        }
    }
}
Copier après la connexion

É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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!