una notas muestra mostrar insertar imagenes imagen desde como carpeta bloc python-3.x beautifulsoup python-requests google-search google-search-api

python-3.x - notas - insertar imagenes en r markdown



¿Cómo puedo obtener el contenido del cuadro de "comentarios" de las búsquedas de Google? (2)

La pregunta es buena idea

El programa se puede iniciar con python3 defineterm.py apple

#! /usr/bin/env python3.5 # defineterm.py import requests from bs4 import BeautifulSoup import sys import html import codecs searchterm = '' ''.join(sys.argv[1:]) url = ''https://www.google.com/search?q=define+'' + searchterm res = requests.get(url) try: res.raise_for_status() except Exception as exc: print(''error while loading page occured: '' + str(exc)) text = html.unescape(res.text) soup = BeautifulSoup(text, ''lxml'') prettytext = soup.prettify() #next lines are for analysis (saving raw page), you can comment them frawpage = codecs.open(''rawpage.txt'', ''w'', ''utf-8'') frawpage.write(prettytext) frawpage.close() firsttag = soup.find(''h3'', class_="r") if firsttag != None: print(firsttag.getText()) print() #second tag may be changed, so check it if not returns correct result. That might be situation for all searched tags. secondtag = soup.find(''div'', {''style'': ''color:#666;padding:5px 0''}) if secondtag != None: print(secondtag.getText()) print() termtags = soup.findAll("li", {"style" : "list-style-type:decimal"}) count = 0 for tag in termtags: count += 1 print( str(count)+''. '' + tag.getText()) print()

hacer script como ejecutable

luego en ~ / .bashrc
esta línea se puede agregar

alias defterm="/data/Scrape/google/defineterm.py "

poniendo el camino correcto para guiar tu lugar

luego ejecutando

source ~/.bashrc

El programa se puede iniciar con:

defterm apple (or other term)

Cuando hace una pregunta o solicita la definición de una palabra en una búsqueda de Google, Google le da un resumen de la respuesta en el cuadro de "comentarios" .

Por ejemplo, cuando buscas define apple obtienes este resultado:

Ahora, me gustaría dejar en claro que no necesito toda la página u otros resultados, solo necesito esta casilla:

¿Cómo puedo usar los módulos Requests y Beautiful Soup para obtener el contenido de este cuadro de "comentarios" en Python 3?

Si eso no es posible, ¿puedo usar la API de búsqueda de Google para obtener el contenido del cuadro de "comentarios" ?

He encontrado una pregunta similar sobre SO, pero el OP no ha especificado el idioma, no hay respuestas y me temo que los dos comentarios están desactualizados ya que esta pregunta se hizo hace casi 9 meses.

Gracias por su tiempo y ayuda con anticipación.


Se realiza fácilmente mediante solicitudes y bs4 , solo necesita extraer el texto del div con la clase lr_dct_ent

import requests from bs4 import BeautifulSoup h = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36"} r = requests.get("https://www.google.ie/search?q=define+apple", headers=h).text soup = BeautifulSoup(r) print("/n".join(soup.select_one("div.lr_dct_ent").text.split(";")))

El texto principal está en una lista ordenada, el sustantivo está en el div con la clase lr_dct_sf_h :

In [11]: r = requests.get("https://www.google.ie/search?q=define+apple", headers=h).text In [12]: soup = BeautifulSoup(r,"lxml") In [13]: div = soup.select_one("div.lr_dct_ent") In [14]: n_v = div.select_one("div.lr_dct_sf_h").text In [15]: expl = [li.text for li in div.select("ol.lr_dct_sf_sens li")] In [16]: print(n_v) noun In [17]: print("/n".join(expl)) 1. the round fruit of a tree of the rose family, which typically has thin green or red skin and crisp flesh.used in names of unrelated fruits or other plant growths that resemble apples in some way, e.g. custard apple, oak apple. used in names of unrelated fruits or other plant growths that resemble apples in some way, e.g. custard apple, oak apple. 2. the tree bearing apples, with hard pale timber that is used in carpentry and to smoke food.