He estado haciendo algunos scraping html en PHP utilizando expresiones regulares. Esto funciona, pero el resultado es quisquilloso y frágil. ¿Alguien ha usado algún paquete que brinde una solución más robusta? Una solución basada en configuración sería ideal, pero no soy exigente.HTML Scraping en Php
Respuesta
Recomendaría PHP Simple HTML DOM Parser después de haber eliminado el código HTML de la página. Admite HTML no válido y proporciona una forma muy sencilla de manejar elementos HTML.
Alternativas de terceros sugeridas a [SimpleHtmlDom] (http://simplehtmldom.sourceforge.net/) que realmente usan [DOM] (http://php.net/manual/en/book.dom.php) en lugar de String Parsing : [phpQuery] (http://code.google.com/p/phpquery/), [Zend_Dom] (http://framework.zend.com/manual/en/zend.dom.html), [QueryPath] (http://querypath.org/) y [FluentDom] (http://www.fluentdom.org). – Gordon
¿me puede dar un ejemplo para hacer clic en cualquier enlace en una página determinada? –
Si la página que está raspando es válida X (HT) ML, entonces cualquiera de PHP's built-in XML parsers hará.
No he tenido mucho éxito con las bibliotecas PHP para raspar. Si eres aventurero, puedes intentar simplehtmldom. Recomendaría Hpricot para Ruby o Beautiful Soup para Python, que son ambos excelentes analizadores para HTML.
Si va a analizar HTML particularmente descuidado, asegúrese de no utilizar BeautifulSoup 3.1.x (use 3.0.x). 3.1.x usa htmllib como su analizador sintáctico, que es mucho menos tolerante que el uso de sgmllib por parte de 3.0.x. – Tom
He tenido muy buenos resultados con el Simple Html DOM Parser mencionado anteriormente también. Y luego está el tidy Extension for PHP que también funciona muy bien también.
Usando PHP para raspar HTML, recomendaría cURL + regexp o cURL + algunos analizadores DOM aunque personalmente uso cURL + regexp. Si tienes un sabor profundo de la expresión regular, a veces es más preciso.
También recomendaría 'Simple HTML DOM Parser'. Es una buena opción, especialmente si está familiarizado con los selectores de jQuery o JavaScript, entonces se encontrará en casa.
tuve que usar mi rizo en 1and1 anfitrión.
http://www.quickscrape.com/ es lo que se me ocurrió al usar la clase DOM simple!
- 1. Web scraping en PHP
- 2. html scraping y css consultas
- 3. Screen Scraping HTML with C#
- 4. Scraping Library para PHP - phpQuery?
- 5. Web scraping con Python
- 6. Web scraping de Python que implica etiquetas HTML con atributos
- 7. Etiqueta web scraping
- 8. Python data scraping
- 9. Web Scraping con Haskell
- 10. heavy iTunes Connect scraping
- 11. Web scraping con Python
- 12. RUBY - web scraping - (OpenURI :: HTTPError)
- 13. HTML en variable PHP (fuera de código PHP HTML)
- 14. Python 3 web scraping options
- 15. Proxies rotativos para scraping web
- 16. Power Shell Web Scraping SSL/TSL Issue
- 17. purificación de HTML en php
- 18. php/html - http_referer
- 19. PHP Include para HTML?
- 20. Minificar HTML/PHP
- 21. PHP HTML image output
- 22. PHP HTML DOM analizador
- 23. PHP analizar HTML
- 24. Sesiones PHP con HTML
- 25. Web Scraping con Google App Engine
- 26. ¿Cómo mostrar XML en HTML en PHP?
- 27. PHP Eval que evalúa HTML y PHP
- 28. Web scraping - cómo identificar contenido principal en una página web
- 29. Llamar a PHP en la página html
- 30. ¿Cómo visualizo el código PHP en HTML?
Eche un vistazo a [this] (http://stackoverflow.com/questions/26947/how-to-implement-a-web-scraper-in-php#27109) thread - la pregunta va en una dirección similar – crono