>  기사  >  백엔드 개발  >  Selenium+PhantomJS를 사용하여 데이터(그림 및 텍스트)를 캡처하는 C# 사례에 대한 자세한 소개

Selenium+PhantomJS를 사용하여 데이터(그림 및 텍스트)를 캡처하는 C# 사례에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-21 11:37:061653검색

이 글에서는 Selenium+PhantomJS를 사용하여 데이터를 캡처하는 C#의 방법과 단계를 주로 소개합니다. 편집기를 사용하여 살펴보겠습니다.

현재 프로젝트에 대한 요구 사항 js로 렌더링된 웹사이트에서 데이터를 캡처합니다. 일반적으로 사용되는 httpclient를 사용하여 캡처한 페이지에는 데이터가 없습니다. Baidu에서 검색한 후 모든 사람이 권장하는 솔루션은 PhantomJS를 사용하는 것입니다. PhantomJS는 인터페이스가 없는 웹킷 브라우저로, js를 사용하여 브라우저와 동일한 효과로 페이지를 렌더링할 수 있습니다. Selenium은 웹 테스트 프레임워크입니다. Selenium을 사용하여 PhantomJS를 운영하는 것은 완벽한 조화입니다. 하지만 인터넷에 있는 대부분의 예제는 Python으로 되어 있습니다. 어쩔 수 없이 Python을 다운로드하고 튜토리얼을 따랐지만 Selenium 가져오기 문제에 봉착했습니다. 그래서 포기하고 평소 사용하던 C#을 사용하기로 결정했습니다. C#에서는 사용할 수 없다고 생각했기 때문입니다. 30분 동안 만지작거린 후에 나는 그것을 끝냈습니다(파이썬을 만지작거린 지 한 시간). 나와 같은 C# 초보자가 PhantomJS를 사용할 수 있도록 이 블로그 게시물을 기록해 두세요.

1단계: Visual Studio 2017을 열고 새 콘솔 프로젝트를 만든 다음 Nuget 패키지 관리자를 엽니다.

2부: Selenium을 검색하고 Selenium.WebDriver를 설치합니다. 참고: 프록시를 사용하려면 버전 3.0.0을 설치하는 것이 가장 좋습니다.

Step 3: 아래와 같이 코드를 작성합니다. 그러나 실행 시 오류가 보고됩니다. 그 이유는 PhantomJS.exe를 찾을 수 없기 때문입니다. 지금은 하나를 다운로드하거나 4단계로 계속 진행할 수 있습니다.

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;
 }
 }
}

4단계: nuget을 열어 Selenium.PhantomJS.WebDriver 패키지를 설치합니다.

5단계: 실행합니다. phantomjs.exe가 자동으로 다운로드되는 것을 확인할 수 있습니다.

자, 이제 데이터 캡처 사업을 시작할 수 있습니다.

위 내용은 Selenium+PhantomJS를 사용하여 데이터(그림 및 텍스트)를 캡처하는 C# 사례에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.