¿Hay una API para los Contestadores de Google?

Los cuadros de respuestas de Google (a veces llamados fragmentos destacados, tarjetas de conocimiento o resultados en vivo) son extremadamente útiles. Me gustaría extraer la información y usarla en mi propio progtwig. Mirando el código HTML, no es tan sencillo como sacarlo de allí. He investigado un poco, pero parece que no puedo encontrar ningún apoyo para ellos. ¿Alguien sabe si hay una API (o parte de la API de búsqueda web) donde puede recuperar la información devuelta desde el Contestador?

Vi la respuesta aquí: google api para gloriosa caja de información? , pero la solución presentada quedó en desuso el mes pasado.

enter image description here

Solo por un ejemplo, este es el código HTML para “¿Cuál es el tiempo en Japón”:

6:37 AM
Tuesday, August 4, 2015 (GMT+9)
Time in Japan

Que es MUY diferente de “donde se encuentra tokio”:

  
Japan
  • Tokyo consists of the southwestern part of the Kanto region, the Izu Islands, and the Ogasawara Islands. Tokyo is the capital of Japan, and the place where over 13 million people live, making it one of the most populous cities in the world.
  • Básicamente necesito extraer “6:37 AM” del primero y “Japón” del segundo, pero realizar una búsqueda dinámica de cadenas sería difícil ya que están en formatos muy diferentes.

    Hay una respuesta instantánea api disponible de DuckDuckGo que he usado en el pasado y que funciona bastante bien. Las respuestas no son tan sólidas como las de Google, pero es un buen comienzo.

    https://duckduckgo.com/api

    La API se ve así en una respuesta JSON.

     { Abstract: "" AbstractText: "" AbstractSource: "" AbstractURL: "" Image: "" Heading: "" Answer: "" Redirect: "" AnswerType: "" Definition: "" DefinitionSource: "" DefinitionURL: "" RelatedTopics: [ ] Results: [ ] Type: "" } 

    ¡Espero que esto ayude!

    He investigado mucho y parece que no hay nada disponible actualmente como lo ha descrito. No hay nada que pueda extraer información de Google Searches tampoco.

    Lo único que podría pensar que podría ser una alternativa es obtener información a través de RSS ( http://www.w3schools.com/xml/xml_rss.asp ) e implementar eso en un progtwig de alguna manera.

    Un poco tarde, pero aquí hay una solución de trabajo en 2017 que usa Python y Selenium (con el destornillador cromado sin cabeza) para extraer el texto “primario” del cuadro de respuesta, basado en el hecho de que el formato de la página de búsqueda y del cuadro de respuesta es razonablemente consistente en diferentes tipos de consultas (aunque no lo he probado exhaustivamente). Por supuesto, las coordenadas del elemento pueden cambiar dependiendo de la resolución / tamaño de la ventana, pero ajustarlo es bastante fácil.

     from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("--window-size=1024x768") chrome_options.add_argument("--headless") driver = webdriver.Chrome(chrome_options=chrome_options) def ask_google(query): # Search for query query = query.replace(' ', '+') driver.get('http://www.google.com/search?q=' + query) # Get text from Google answer box answer = driver.execute_script( "return document.elementFromPoint(arguments[0], arguments[1]);", 350, 230).text return answer 

    Y probar este enfoque con sus consultas (o cerca de ellos) produce:

     ask_google("what is the time in Japan") "4:36 PM" ask_google("where is tokyo located in japan") "Situated on the Kanto Plain, Tokyo is one of three large cities, the other two being Yokohama and Kawasaki, located along the northwestern shore of Tokyo Bay, an inlet of the Pacific Ocean on east-central Honshu, the largest of the islands of Japan."