una tutorial pagina extraer español datos python-3.x beautifulsoup web-crawler

python 3.x - tutorial - ¿Cómo rastrear genéricamente diferentes sitios web usando Python?



django tutorial español pdf (1)

Quiero extraer comentarios de Dawn.com y de Tribune.com de cualquier artículo.

La forma en que estoy extrayendo comentarios es dirigirse a la clase <div class="comment__body cf"> en Dawn mientras class = "content" en Tribune.com

¿Cómo puedo hacerlo genéricamente? Significa que no existe un patrón similar en estos sitios web a través del cual esto se pueda lograr en una clase.

¿Debo escribir un código por separado para cada sitio web?


No es tan fácil escribir un algoritmo que pueda tomar genéricamente el contenido deseado de un sitio web o algo así. Porque, como has mencionado, no hay ningún patrón aquí. Algunos pueden poner comentarios de su sitio allí y darle un nombre de clase como comments o site_comments o lo que sea y algunos pueden ponerlo aquí y darle otro nombre de clase, y así sucesivamente. Entonces, lo que creo es que necesitas averiguar los nombres de las clases o lo que quieras seleccionar para eliminar el contenido del sitio web.

Sin embargo, en su caso, si no desea escribir un código separado para ellos, creo que puede usar BeautifulSoup''s funcionalidad de expresiones regulares BeautifulSoup''s .

Por ejemplo, puedes hacer algo como esto:

from bs4 import BeautifulSoup import requests site_urls = [first_site, second_site] for site in site_urls: # this is just an example and in real life situations # you should do some error checking site_content = requests.get(site) soup = BeautifulSoup(site_content, ''html5lib'') # this is the list of html tags with the current site''s comments # and you can do whatever you want with them comments = soup.find_all(class_=re.compile("(comment)|(content)"))

Tienen una muy buena documentación aquí . Deberías verificarlo.