복붙노트

PHP로 웹 스크래퍼를 구현하는 방법은 무엇입니까? [닫은]

PHP

PHP로 웹 스크래퍼를 구현하는 방법은 무엇입니까? [닫은]

어떤 내장 PHP 함수가 웹 스크래핑에 유용합니까? PHP로 웹 스크래핑 속도를 높이기위한 좋은 자료 (웹 또는 인쇄물)는 무엇입니까?

해결법

  1. ==============================

    1.이 주제에 대한 "Webbots, Spider, Screen Scrapers : PHP / CURL을 사용하여 인터넷 에이전트를 개발하는 안내서"라는 책이 있습니다 - 여기에서 리뷰보기

    이 주제에 대한 "Webbots, Spider, Screen Scrapers : PHP / CURL을 사용하여 인터넷 에이전트를 개발하는 안내서"라는 책이 있습니다 - 여기에서 리뷰보기

    PHP 건축가는 Matthew Turland의 2007 년 12 월호에 잘 쓰여진 기사에서 그것을 다뤘습니다.

  2. ==============================

    2.스크래핑은 일반적으로 3 단계로 이루어집니다.

    스크래핑은 일반적으로 3 단계로 이루어집니다.

    1 단계와 2 단계를 수행하기 위해 아래에는 Curl을 사용하여 GET 또는 POST 중 하나를 사용하여 웹 페이지를 가져 오는 간단한 PHP 클래스가 있습니다. HTML을 다시 얻은 후에는 정규 표현식을 사용하여 스크랩하려는 텍스트를 구문 분석하여 3 단계를 완료하십시오.

    정규 표현식에서 가장 좋아하는 튜토리얼 사이트는 다음과 같습니다. 정규식 자습서

    RegExs를 사용하기위한 My Favorite 프로그램은 Regex Buddy입니다. 구매 의도가 없더라도 제품 데모를 사용해 보시기 바랍니다. 그것은 귀중한 도구이며 심지어 당신이 선택한 언어 (PHP 포함)에서 만드는 정규식에 대한 코드를 생성합니다.

    용법:

    $ curl = new Curl (); $ html = $ curl-> get ( "http://www.google.com");

    // 이제 $ html에 대한 정규식 작업을 수행합니다.

  3. ==============================

    3.나는 최근에 만난이 수업을 추천하고 싶습니다. 간단한 HTML DOM 파서

    나는 최근에 만난이 수업을 추천하고 싶습니다. 간단한 HTML DOM 파서

  4. ==============================

    4.나는 간단한 PHP 웹 스크레이퍼 인 Goutte를 추천한다.

    나는 간단한 PHP 웹 스크레이퍼 인 Goutte를 추천한다.

    Goutte Client 인스턴스를 생성합니다. Symfony \ Component \ BrowserKit \ Client) :

    use Goutte\Client;
    
    $client = new Client();
    

    request () 메소드로 요청한다 :

    $crawler = $client->request('GET', 'http://www.symfony-project.org/');
    

    요청 메소드는 크롤러 객체를 반환합니다. (Symfony \ Component \ DomCrawler \ Crawler).

    링크를 클릭하십시오 :

    $link = $crawler->selectLink('Plugins')->link();
    $crawler = $client->click($link);
    

    양식 제출 :

    $form = $crawler->selectButton('sign in')->form();
    $crawler = $client->submit($form, array('signin[username]' => 'fabien', 'signin[password]' => 'xxxxxx'));
    

    데이터 추출 :

    $nodes = $crawler->filter('.error_list');
    
    if ($nodes->count())
    {
      die(sprintf("Authentification error: %s\n", $nodes->text()));
    }
    
    printf("Nb tasks: %d\n", $crawler->filter('#nb_tasks')->text());
    
  5. ==============================

    5.ScraperWiki는 꽤 흥미로운 프로젝트입니다. 파이썬, 루비 또는 PHP로 스크래퍼를 온라인으로 구축 할 수있게 도와줍니다. 몇 분 안에 간단한 시도를 할 수있었습니다.

    ScraperWiki는 꽤 흥미로운 프로젝트입니다. 파이썬, 루비 또는 PHP로 스크래퍼를 온라인으로 구축 할 수있게 도와줍니다. 몇 분 안에 간단한 시도를 할 수있었습니다.

  6. ==============================

    6.다음은 cURL 및 file_get_contents를 사용하여 웹 스크래핑에서 OK 튜토리얼 (링크 제거, 아래 참조)입니다. 다음 몇 가지 부분을 읽으 려니.

    다음은 cURL 및 file_get_contents를 사용하여 웹 스크래핑에서 OK 튜토리얼 (링크 제거, 아래 참조)입니다. 다음 몇 가지 부분을 읽으 려니.

    (맬웨어 경고로 인해 직접 하이퍼 링크 제거됨)

    http://www.oooff.com/php-scripts/basic-php-scraped-data-parsing/basic-php-data-parsing.php

  7. ==============================

    7.마치 사이트 콘텐츠를 기반으로 실시간으로 업데이트하는 것과 같이 긁히지 않고 '핫 링크'하려고하는 것처럼 들릴 수 있습니다.

    마치 사이트 콘텐츠를 기반으로 실시간으로 업데이트하는 것과 같이 긁히지 않고 '핫 링크'하려고하는 것처럼 들릴 수 있습니다.

    이 자습서는 아주 좋습니다.

    http://www.merchantos.com/makebeta/php/scraping-links-with-php/

    브라우저를 살펴볼 수도 있습니다.

  8. ==============================

    8.실행하기보다 유지하기 쉬운 것이 필요한 경우 SimpleTest와 같은 스크립팅 가능 브라우저를 사용하는 것이 도움이 될 수 있습니다.

    실행하기보다 유지하기 쉬운 것이 필요한 경우 SimpleTest와 같은 스크립팅 가능 브라우저를 사용하는 것이 도움이 될 수 있습니다.

  9. ==============================

    9.여기에 또 다른 하나가 있습니다 : Regex가없는 간단한 PHP Scraper.

    여기에 또 다른 하나가 있습니다 : Regex가없는 간단한 PHP Scraper.

  10. ==============================

    10.스크래핑은 원하는 작업에 따라 매우 복잡 할 수 있습니다. PHP에서 스크래퍼 작성의 기초에 대한 튜토리얼 시리즈를 읽고, 그걸 이해할 수 있는지 살펴 보자.

    스크래핑은 원하는 작업에 따라 매우 복잡 할 수 있습니다. PHP에서 스크래퍼 작성의 기초에 대한 튜토리얼 시리즈를 읽고, 그걸 이해할 수 있는지 살펴 보자.

    비슷한 방법을 사용하여 양식 가입, 로그인, 심지어는 가짜 광고 클릭을 자동화 할 수 있습니다! 하지만 CURL을 사용할 때의 주된 한계는 자바 스크립트 사용을 지원하지 않는다는 것입니다. 예를 들어 페이지 매김을 위해 AJAX를 사용하는 사이트를 긁으려고한다면 약간 까다로워 질 수 있지만 다시 그 주위에 방법이 있습니다!

  11. ==============================

    11.file_get_contents ()는 원격 URL을 가져와 소스를 제공 할 수 있습니다. 그런 다음 정규 표현식 (Perl 호환 기능 포함)을 사용하여 필요한 것을 얻을 수 있습니다.

    file_get_contents ()는 원격 URL을 가져와 소스를 제공 할 수 있습니다. 그런 다음 정규 표현식 (Perl 호환 기능 포함)을 사용하여 필요한 것을 얻을 수 있습니다.

    호기심에서 무엇을 긁으려고합니까?

  12. ==============================

    12.나는 libcurl이나 Perl의 LWP (perl을위한 libwww)를 사용한다. PHP에 libwww가 있습니까?

    나는 libcurl이나 Perl의 LWP (perl을위한 libwww)를 사용한다. PHP에 libwww가 있습니까?

  13. ==============================

    13.내 프레임 워크에서 스크래퍼 클래스 :

    내 프레임 워크에서 스크래퍼 클래스 :

    <?php
    
    /*
        Example:
    
        $site = $this->load->cls('scraper', 'http://www.anysite.com');
        $excss = $site->getExternalCSS();
        $incss = $site->getInternalCSS();
        $ids = $site->getIds();
        $classes = $site->getClasses();
        $spans = $site->getSpans(); 
    
        print '<pre>';
        print_r($excss);
        print_r($incss);
        print_r($ids);
        print_r($classes);
        print_r($spans);        
    
    */
    
    class scraper
    {
        private $url = '';
    
        public function __construct($url)
        {
            $this->url = file_get_contents("$url");
        }
    
        public function getInternalCSS()
        {
            $tmp = preg_match_all('/(style=")(.*?)(")/is', $this->url, $patterns);
            $result = array();
            array_push($result, $patterns[2]);
            array_push($result, count($patterns[2]));
            return $result;
        }
    
        public function getExternalCSS()
        {
            $tmp = preg_match_all('/(href=")(\w.*\.css)"/i', $this->url, $patterns);
            $result = array();
            array_push($result, $patterns[2]);
            array_push($result, count($patterns[2]));
            return $result;
        }
    
        public function getIds()
        {
            $tmp = preg_match_all('/(id="(\w*)")/is', $this->url, $patterns);
            $result = array();
            array_push($result, $patterns[2]);
            array_push($result, count($patterns[2]));
            return $result;
        }
    
        public function getClasses()
        {
            $tmp = preg_match_all('/(class="(\w*)")/is', $this->url, $patterns);
            $result = array();
            array_push($result, $patterns[2]);
            array_push($result, count($patterns[2]));
            return $result;
        }
    
        public function getSpans(){
            $tmp = preg_match_all('/(<span>)(.*)(<\/span>)/', $this->url, $patterns);
            $result = array();
            array_push($result, $patterns[2]);
            array_push($result, count($patterns[2]));
            return $result;
        }
    
    }
    ?>
    
  14. ==============================

    14.좋은 PHP 웹 근근이 여기 전자 책 :

    좋은 PHP 웹 근근이 여기 전자 책 :

    https://leanpub.com/web-scraping

  15. ==============================

    15.curl 라이브러리를 사용하면 웹 페이지를 다운로드 할 수 있습니다. 스크래핑을 수행하기 위해 정규 표현식을 조사해야합니다.

    curl 라이브러리를 사용하면 웹 페이지를 다운로드 할 수 있습니다. 스크래핑을 수행하기 위해 정규 표현식을 조사해야합니다.

  16. from https://stackoverflow.com/questions/26947/how-to-implement-a-web-scraper-in-php by cc-by-sa and MIT license