• Descarga el eBook gratuito SEO en Wordpress 2015 aquí

    • Pack con las mejores herramientas SEO en las VIP Tools apúntate!


     
    Calificación:
    • 0 votos - 0 Media
    • 1
    • 2
    • 3
    • 4
    • 5
    Scrapear utilizando PHP nativo y la librería Curl

    Administrador


    *******
    Puntos de comerciante: 1 (100%)
    2,900


    Programador Promotor Blog 1000 Posts Asistente

    Crédito: 22.73 BHC
    Mensaje: #1
    Scrapear utilizando PHP nativo y la librería Curl
    Para sacar información de una web es muy sencillo, con los dos trozos de código que os voy a mostrar vas a poder hacerlo sin problemas.

    Para el caso de utilizar las funciones nativas de PHP sería:

    Código:
    <?PHP
    $html = file_get_contents('http://foroblackhat.com/');
    preg_match('/<title>(.*)<\/title>/i', $html, $title);
    $title_out = $title[1];

    En este caso estamos sacado el Título de una URL que le hemos pasado la función file_get_contents que nos devuelve el HTML de esa URL.

    Si quieres trabajar con una librería más potente te recomiendo Curl por defecto suele venir ya instalada. El código sería:

    Código:
    <?PHP
    function get_content_url($url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8');

        $data = curl_exec($ch);
        curl_close($ch);

        return $data;
    }

    $html = get_content_url('http://foroblackhat.com/');
    preg_match('/<title>(.*)<\/title>/i', $html, $title);
    $title_out = $title[1];

    Como puedes ver en esta nos deja meter más parámetros como puede ser el User Agent y demás. Si quieres conocer todas las posibilidades de esta librería que es muy potente te recomiendo la web oficial de PHP:
    Para ver el enlace necesitas registrarte o acceder a tu cuenta

    http://foroblackhat.com/hilo-abrir-un-nuevo-grupo-vip-tools-para-herramientas-seo-premium
    Para ver el enlace necesitas registrarte o acceder a tu cuenta
    - Canciones. Traducidas. Dedicadas. Sonrisa
    (Este mensaje fue modificado por última vez en: 19-03-2014 02:53 PM por Sauron.)
    19-03-2014 02:53 PM
    Buscar Citar
     Gracias recibidas por: mbwjjpnqh

    BlackHat Bronce


    **
    Puntos de comerciante: 0 (0%)
    9

    0


    Crédito: 0.32 BHC
    Mensaje: #2
    Re: Scrapear utilizando PHP nativo y la librería Curl
    Usa phpquery. Es el mejor para scrapear desde php... un saludo.

    Enviado desde mi bq Aquaris

    heyla03, orgulloso de ser un miembro de Foro Black Hat SEO desde Jul 2014.
    29-07-2014 12:24 AM
    Buscar Citar

    Administrador


    *******
    Puntos de comerciante: 1 (100%)
    2,900


    Programador Promotor Blog 1000 Posts Asistente

    Crédito: 22.73 BHC
    Mensaje: #3
    RE: Scrapear utilizando PHP nativo y la librería Curl
    (29-07-2014 12:24 AM)heyla03 escribió:  Usa phpquery. Es el mejor para scrapear desde php... un saludo.

    Muy interesante phpQuery, pero para obtener el HTML de una web es mejor emplear la librería cURL, el ejemplo del hilo hecho con phpQuery:

    Código PHP:
    <?PHP
    function get_content_url($url) {
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL$url);
        
    curl_setopt($chCURLOPT_HEADERfalse);
        
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
    curl_setopt($chCURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_1_1); 
        
    curl_setopt($chCURLOPT_CONNECTTIMEOUT5);
        
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8');

        
    $data curl_exec($ch); 
        
    curl_close($ch);

        return 
    $data;
    }

    //Get the HTML string from cURL
    $document_html_string file_get_contents('http://foroblackhat.com/');

    //Create new instance of phpQuery
    //We assume the phpoQuery library is included at the top or your script.
    phpQuery::newDocument($document_html_string);
    $inputs = array(); //Create an empty array to hold the inputs.
        
    //Get title
    $title_out $pq->find("title")->text(); 

    http://foroblackhat.com/hilo-abrir-un-nuevo-grupo-vip-tools-para-herramientas-seo-premium
    Para ver el enlace necesitas registrarte o acceder a tu cuenta
    - Canciones. Traducidas. Dedicadas. Sonrisa
    29-07-2014 10:35 AM
    Buscar Citar

    BlackHat Bronce


    **
    Puntos de comerciante: 0 (0%)
    9

    0


    Crédito: 0.32 BHC
    Mensaje: #4
    RE: Scrapear utilizando PHP nativo y la librería Curl
    Si yo lo obtengo con curl y con phpquery parseo lo que quiero extraer.

    Enviado desde mi bq Aquaris

    heyla03, orgulloso de ser un miembro de Foro Black Hat SEO desde Jul 2014.
    29-07-2014 03:55 PM
    Buscar Citar
     Gracias recibidas por: mbwjjpnqh

    BlackHat Cobre


    ***
    VIP Tools
    Puntos de comerciante: 0 (0%)
    62

    0

    Promotor Blog

    Crédito: 1.17 BHC
    Mensaje: #5
    RE: Scrapear utilizando PHP nativo y la librería Curl
    a mi no me llega a descargar el fichero de la web ¿???

    http://goo.gl/nuQubz - http://goo.gl/J8xzGH - http://goo.gl/2hTr56 - http://goo.gl/9YEYhx - http://goo.gl/y0gWal
    17-09-2014 12:28 AM
    Buscar Citar
     Gracias recibidas por: mbwjjpnqh

    BlackHat Bronce


    **
    Puntos de comerciante: 0 (0%)
    4

    0


    Crédito: 0.22 BHC
    Mensaje: #6
    RE: Scrapear utilizando PHP nativo y la librería Curl
    ¿Es posible navegar por una web con código PHP?

    Me explico:

    - Accedo a una web en la que hay un botón.
    - Si pulso en ese botón, me lleva a una URL determinada (la URL cambia cada vez)

    Esa URL última es la que quiero sacar, ¿sabéis cómo puedo hacerlo?

    pabl0p, orgulloso de ser un miembro de Foro Black Hat SEO desde Dec 2014.
    29-01-2015 09:08 PM
    Buscar Citar

    Administrador


    *******
    Puntos de comerciante: 1 (100%)
    2,900


    Programador Promotor Blog 1000 Posts Asistente

    Crédito: 22.73 BHC
    Mensaje: #7
    RE: Scrapear utilizando PHP nativo y la librería Curl
    @pabl0p si lo que quieres tomar la última URL efectiva al seguir cierta URL que te lleva a otra URL se puede hacer con la opción CURLINFO_EFFECTIVE_URL

    Te recomiendo mirarte la documentación de CURL:
    Para ver el enlace necesitas registrarte o acceder a tu cuenta

    $ultimo_enlace = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);

    http://foroblackhat.com/hilo-abrir-un-nuevo-grupo-vip-tools-para-herramientas-seo-premium
    Para ver el enlace necesitas registrarte o acceder a tu cuenta
    - Canciones. Traducidas. Dedicadas. Sonrisa
    29-01-2015 09:24 PM
    Buscar Citar

    Programador


    **
    Puntos de comerciante: 0 (0%)
    30

    2


    Crédito: 1.25 BHC
    Mensaje: #8
    RE: Scrapear utilizando PHP nativo y la librería Curl
    Vaya justo esto he andado buscando, yo lo hacía con el primer método y no funcionaba siempre porque las web lo bloqueaban, veremos que tal trabaja el segundo Gran sonrisa

    09-07-2015 06:43 AM
    Buscar Citar


    Posibles temas similares...
    Tema: Autor Respuestas: Vistas: Último mensaje
      Scrapear con phyton carlosse 10 2,256 14-10-2016 08:42 AM
    Último mensaje: Sauron
      Cómo usar preg_match para scrapear? mrr276 3 1,580 29-07-2014 12:22 AM
    Último mensaje: heyla03
      Como utilizar Proxy en PHP usando la librería Curl Sauron 4 2,750 09-04-2014 07:55 PM
    Último mensaje: Sauron

    Salto de foro:


    Usuario(s) navegando en este tema: 1 invitado(s)
    Anuncios FBH (+ info)

    Foro Black Hat

    ForoBlackHat es un foro público con ánimo de desarrollo de aplicaciones y estrategias SEO para la comunidad hispano hablante cuyo objetivo sea el de aprender técnicas de posicionamiento.

    Nuestra comunidad cuenta con un equipo de programadores que desarrollan día a día nuevas herramientas gratuitas para los usuarios. ¡Siéntete libre de registrarte y comentar por los hilos!