Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web Scrapping & WordPress

Web Scrapping & WordPress

Cómo realizar web scrapping en PHP y usando PHP Simple HTML DOM Parser con WordPress para obtener y almacenar la información. Exposición para la comunidad WordPress Perú.

Transcript

  1. Web Scraping con WordPress César Aquino Maximiliano - @cesjam7

  2. ¿Qué es Web Scraping? Web Scraping es una técnica utilizada

    mediante software para extraer información de sitios web.
  3. Técnicas para hacer Web Scraping ▪ Copy & Paste ▪

    Expresiones regulares ▪ Protocolo HTTP ▪ Parses HTML ▪ Aplicaciones para Web Scraping
  4. Técnicas para hacer Web Scraping ▪ Copy & Paste ▪

    Expresiones regulares ▪ Protocolo HTTP ▪ Parses HTML ▪ Aplicaciones para Web Scraping
  5. None
  6. None
  7. Solicita información

  8. Solicita información Obtiene información

  9. Solicita información Obtiene información Filtra la información

  10. Solicita información Obtiene información Filtra la información Procesa la información

  11. Solicita información Obtiene información Filtra la información Procesa la información

    Guarda la información
  12. Solicita información Obtiene información Filtra la información Procesa la información

    Guarda la información
  13. PHP Simple HTML DOM Parser ▪ A HTML DOM parser

    written in PHP5+ let you manipulate HTML in a very easy way! ▪ Require PHP 5+. ▪ Find tags on an HTML page with selectors just like jQuery. ▪ Extract contents from HTML in a single line. http://simplehtmldom.sourceforge.net/
  14. Ejemplo simple de cómo extraer usando PHP Simple HTML DOM

    Parser <?php // Create DOM from URL or file $html = file_get_html('http://jovenred.com/'); // Find all images foreach($html->find('img') as $element) { echo $element->src.'<br>'; } // Find all links foreach($html->find('a') as $element) { echo $element->href.'<br>'; } ?>
  15. Tres formas para obtener un DOM Object <?php // Create

    a DOM object from a string $html = str_get_html('<html><body>Hello!</body>< /html>'); // Create a DOM object from a URL $html = file_get_html('http://jovenred.com/'); // Create a DOM object from a HTML file $html = file_get_html('test.htm'); ?>
  16. Cómo buscar un elemento HTML <?php // Find all anchors,

    returns a array of element objects $ret = $html->find('a'); // Find (N)th anchor, returns element object or null if not found (zero based) $ret = $html->find('a', 0); // Find all <div> with the id attribute $ret = $html->find('div[id]'); // Find all <div> which attribute id=foo $ret = $html->find('div[id=foo]'); ?>
  17. ¿Y donde entra WordPress?

  18. Solicita información Obtiene información Filtra la información Procesa la información

    Guarda la información
  19. Cómo ingresar la información a nuestra base de datos con

    WordPress <?php // Create DOM from URL or file $html = file_get_html('http://jovenred.com/'); // Find all images foreach($html->find('.post') as $element) { $title = $element->find('h2 a')->plaintext; $content = $element->find('p', 0)->plaintext; wp_insert_post( array( 'post_title' => $title; 'post_content' => $content; ) ); } ?>
  20. Cómo ingresar la información a nuestra base de datos con

    WordPress <?php // Create DOM from URL or file $html = file_get_html('http://jovenred.com/'); // Find all images foreach($html->find('.post') as $element) { $title = $element->find('h2 a')->plaintext; $content = $element->find('p', 0)->plaintext; wp_insert_post( array( 'post_title' => $title; 'post_content' => $content; ) ); } ?>
  21. https://codex.wordpress.org/Function_Reference/wp_insert_post

  22. #DataBomberos Data Bomberos Perú es una página no oficial que

    muestra información recolectada de la central de emergencias del Cuerpo General de Bomberos Voluntarios del Perú. La información es obtenida por la página Emergencias Diarias que comparte el Cuerpo de Bomberos de forma pública en el siguiente link http://www.bomberosperu.gob.pe/po_diario.asp. http://databomberos.com
  23. None
  24. #DataBomberos https://github.com/cesjam7/cbp-emergencies

  25. #DataBomberos Emergencias del 14/05/2015 Emergencias por categoría Mapa de calor

  26. Hora de codear Vamos a scrapear los resultados de búsqueda

    de Foursquare:
  27. Hora de codear Vamos a scrapear los resultados de búsqueda

    de Foursquare: $html = file_get_html($_POST['link']); $c = 0; foreach($html->find('.contentHolder') as $result) { $c++; echo '<tr>'; echo '<td>'.$c.'</td>'; echo '<td>'.$result->find('.categoryName', 0)->plaintext.'</td>'; echo '<td>'.$result->find('.venueName a', 0)->plaintext.'</td>'; echo '</tr>'; }
  28. Muchas gracias ❏ Twitter: @cesjam7 ❏ Web Personal: cesar.pe ❏

    Empresa: orange612.com ❏ Presentaciones: speakerdeck.com/cesjam7 ❏ Repositorios: github.com/cesjam7
  29. Muchas gracias ❏ Twitter: @cesjam7 ❏ Blog: jovenred.com ❏ Empresa:

    orange612.com ❏ Presentaciones: speakerdeck.com/cesjam7 ❏ Repositorios: github.com/cesjam7 Recuerden: En caso de emergencia llamar al 1-1-6