Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

155
Views
PHP Simple HTML DOM Parser que devuelve falso en una URL válida

Estoy intentando lo siguiente:

 $url = 'https://www.tripadvisor.es/Hotels-g187514-Madrid-Hotels.html' $ta_html = file_get_html($url); var_dump($ta_html);

devuelve falso, esto funciona y obtiene correctamente el html para:

 $url = 'https://www.tripadvisor.es/Hotels-g294316-Lima_Lima_Region-Hotels.html#ACCOM_OVERVIEW'

Lo primero que pensé fue que tenía una redirección, pero verifiqué los encabezados con curl y estaba 200 ok y parecía lo mismo en ambos casos. ¿Qué puede estar pasando? como se puede solucionar?

Esto parece ser un duplicado de este problema: HTML DOM simple que devuelve falso que tampoco tiene respuesta

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Parece que el analizador HTML DOM está fallando porque el tamaño del archivo HTML es mayor que el tamaño máximo del archivo de la biblioteca. Cuando llama a file_get_html() , realiza una verificación del tamaño del archivo en función de su constante MAX_FILE_SIZE . Entonces, antes de llamar a cualquier método de analizador HTML DOM, aumente el tamaño máximo de archivo utilizado por la biblioteca llamando:

 define('MAX_FILE_SIZE', 1200000); // or larger if needed, default is 600000

Además, como descubrió, puede evitar la verificación del tamaño del archivo al hacer esto

 $html = new simple_html_dom(); $html->load($str);
about 4 years ago · Santiago Trujillo Report

0

Así que encontré una solución para hacer esto:

 $base = $url; $curl = curl_init(); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_URL, $base); curl_setopt($curl, CURLOPT_REFERER, $base); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $str = curl_exec($curl); curl_close($curl); $html = new simple_html_dom(); $html->load($str);

A decir verdad, no sé exactamente por qué funciona esto y cuál fue el problema original, y agradecería si alguien pudiera señalarlo.

about 4 years ago · Santiago Trujillo Report

0

Espero que te ayude:

 $base = $url; $curl = curl_init(); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_URL, $base); curl_setopt($curl, CURLOPT_REFERER, $base); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $str = curl_exec($curl); curl_close($curl); $html = new simple_html_dom(); $html->load($str);
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!