tag data borders bordered body yql

yql - data - table title html



YQL: la tabla html ya no es compatible (3)

Aunque YQL ya no admite la tabla html, me he dado cuenta de que, en lugar de hacer una llamada de red y analizar los resultados, es posible realizar varias llamadas. Por ejemplo, mi llamada anterior se vería así:

select html from rss where url="http://w1.weather.gov/xml/current_obs/KFLL.rss"

Que debería darme la información como tal a continuación.

Ahora tendría que usar estos dos:

select title from rss where url="http://w1.weather.gov/xml/current_obs/KFLL.rss"

select description from rss where url="http://w1.weather.gov/xml/current_obs/KFLL.rss"

.. para conseguir lo que quiero. No sé por qué desaprobarían algo como esto sin un respaldo claramente en la lista, pero debería poder obtener sus datos de esta manera.

Utilizo YQL para obtener algunas páginas html para leer información. Desde hoy recibí el mensaje de retorno "la tabla html ya no es compatible. Consulte https://policies.yahoo.com/us/en/yahoo/terms/product-atos/yql/index.htm para conocer los Términos de uso de YQL"

Ejemplo en la consola: https://developer.yahoo.com/yql/console/#h=select+ * + de + html + donde + url% 3D% 22http% 3A% 2F% 2Fwww.google.de% 22

¿Yahoo detuvo este servicio? ¿Alguien sabe un tipo de anuncio de Yahoo? Me pregunto si esto es simplemente un error o si realmente detuvieron este servicio ...

Toda la documentación sigue allí (raspado html): https://developer.yahoo.com/yql/guide/yql-select-xpath.html , https://developer.yahoo.com/yql/

Hace un tiempo publiqué en un foro de YQL de Yahoo, ahora este ya no existe (o al menos no lo encuentro). ¿Cómo puede contactar a Yahoo para averiguar si este servicio realmente se detuvo?

Saludos cordiales, hebr3


Muchas gracias por su código.

Me ayudó a crear mi propio script para leer las páginas que necesito. Nunca programé PHP antes, pero con su código y la sabiduría de Internet podría cambiar su script a mis necesidades.

PHP

<? header(''Access-Control-Allow-Origin: *''); //all $url = $_GET[''url'']; if (substr($url,0,25) != "https://www.xxxx.yy") { echo "Only https://www.xxxx.yy allowed!"; return; } $xpathQuery = $_GET[''xpath'']; //need more hard check for security, I made only basic function check($target_url){ $check = curl_init(); //curl_setopt( $check, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip")); //curl_setopt($check, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx"); curl_setopt($check, CURLOPT_COOKIEJAR, ''cookiemon.txt''); curl_setopt($check, CURLOPT_COOKIEFILE, ''cookiemon.txt''); curl_setopt($check, CURLOPT_TIMEOUT, 40000); curl_setopt($check, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($check, CURLOPT_URL, $target_url); curl_setopt($check, CURLOPT_USERAGENT, $_SERVER[''HTTP_USER_AGENT'']); curl_setopt($check, CURLOPT_FOLLOWLOCATION, false); $tmp = curl_exec ($check); curl_close ($check); return $tmp; } // get html $html = check($url); $dom = new DOMDocument(); @$dom->loadHTML($html); // apply xpath filter $xpath = new DOMXPath($dom); $elements = $xpath->query($xpathQuery); $temp_dom = new DOMDocument(); foreach($elements as $n) $temp_dom->appendChild($temp_dom->importNode($n,true)); $renderedHtml = $temp_dom->saveHTML(); // return html in json response // json structure: // {html: "xxxx"} $post_data = array( ''html'' => $renderedHtml ); echo json_encode($post_data); ?>

Javascript

$.ajax({ url: "url of service", dataType: "json", data: { url: url, xpath: "//*" }, type: ''GET'', success: function() { }, error: function(data) { } });


Parece que Yahoo efectivamente terminó su soporte de la biblioteca html a partir del 6/8/2017 (de acuerdo con mis registros de errores). No parece haber ningún anuncio oficial todavía.

Afortunadamente, existe una biblioteca de la comunidad YQL que puede usarse en lugar de la biblioteca html oficial con algunos cambios en su base de código. Vea la tabla htmlstring en la consola YQL .

Cambie su consulta YQL para hacer referencia a htmltable en lugar de html e incluya el entorno de la comunidad en su consulta REST. Por ejemplo:

/*/ Old code /*/ var site = "http://www.test.com/foo.html"; var yql = "select * from html where url=''" + site + "'' AND xpath=''//div''"; var resturl = "https://query.yahooapis.com/v1/public/yql?q=" + encodeURIComponent(yql) + "&format=json";

/*/ New code /*/ var site = "http://www.test.com/foo.html"; var yql = "select * from htmlstring where url=''" + site + "'' AND xpath=''//div''"; var resturl = "https://query.yahooapis.com/v1/public/yql?q=" + encodeURIComponent(yql) + "&format=json" + "&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";