Python selenium can't extract text - python

I'm trying to scrape the text from a list, this is the URL:
https://www.eneba.com/es/lego-dimensions-starter-pack-playstation-4
This is my code:
1º I find de list (ul)
2º for each li in ul print the text
ul = driver.find_element_by_xpath('//h2[2]/following-sibling::ul')
li = ul.find_elements_by_tag_name('li')
#print(li.text)
for element in li:
print(element.text)
This code returns blank spaces instead of text, what am I doing wrong ?
There some answers of people that say things without checking anything.
1º The xpath is definetly there, check it
2º There are 29 H2 in the html of the page, not just one
I received a negative vote from people who say the 1º thing the think without even checking anything.
What I want to extract is this text:
• Rompecabezas - resolver varios acertijos es una de las mecánicas centrales del juego;
• Para todos los públicos – El juego es apropiado para jugadores de todas las edades;
• Arcade - los jugadores deben terminar con éxito los niveles que aumentan en dificultad a medida que avanzan en el juego;
• Acción - este título incluye desafíos que deben superarse utilizando habilidades como precisión, tiempo de respuesta rápido, etc.;
• Superhéroes - Los jugadores entran en un mundo peligroso, donde los únicos capaces de detener el crimen son los héroes bendecidos con poderes únicos;
• Un jugador - el juego presenta una campaña en solitario con una historia;
• Multijugador local - esta función permite que varias personas participen en los mismos partidos, ya sea a través de la pantalla dividida o la misma conexión de red.

1 I've managed to get the data from my region, but I had to spend some time on selecting Spain from the list of countries.
Please note that I avoided using xpath locators as they would be too long.
All explanations are in the comments to the code.
2 To get a text from an element .text is usually used, but for this case is does not work. So get_attribute("innerHTML") is what you really need.
I left all waits that I used. YOu can debug by yourself and remove ones that are not necessary.
Solution:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')
driver.get('https://www.eneba.com/es/lego-dimensions-starter-pack-playstation-4')
wait = WebDriverWait(driver, 15)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "._1FArM6>.qGNWom.qGNWom"))).click() # accept cookies
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".EcNujK._2afX4x._1OhNBA"))).click() # click region button
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#region .css-1hwfws3"))).click() # change region
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#region .react-select__input>input")))
driver.find_element_by_css_selector("#region .react-select__input>input").send_keys("spa") # input country name
driver.find_element_by_css_selector("#react-select-2-option-5").click() # select found country
driver.find_element_by_css_selector("._3Fpvn5>button[type='submit']").click() # submit country
wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "div[itemprop=description]>ul>li"))) # wait for all li elements
cards = driver.find_elements_by_css_selector("div[itemprop=description]>ul>li")
for card in cards:
print(card.get_attribute("innerHTML"))
driver.close()
driver.quit()
Result:
• Rompecabezas - resolver varios acertijos es una de las mecánicas centrales del juego;
• Para todos los públicos – El juego es apropiado para jugadores de todas las edades;
• Arcade - los jugadores deben terminar con éxito los niveles que aumentan en dificultad a medida que avanzan en el juego;
• Acción - este título incluye desafíos que deben superarse utilizando habilidades como precisión, tiempo de respuesta rápido, etc.;
• Superhéroes - Los jugadores entran en un mundo peligroso, donde los únicos capaces de detener el crimen son los héroes bendecidos con poderes únicos;
• Un jugador - el juego presenta una campaña en solitario con una historia;
• Multijugador local - esta función permite que varias personas participen en los mismos partidos, ya sea a través de la pantalla dividida o la misma conexión de red.

There are no elements located by the xpath you defined '//h2[2]/following-sibling::ul.
This is why ul is actually a null and li is an empty list.

Related

Make a Menu using Match Case Python

I have created another MENU in a different exercise using IF in this time I did it with MATCH CASE and I have a doubt, is it possible to print the menu again and if it is possible how I would do it, I think in an if but it is the first time that I use these sentences.
this is my code:
...Later i need to work with dictionaries so with this method can do it?, or I need to use IF to create the menu from the beginning?
menu = """
1. Datos del pasajero.
2. Agrega una ciudad.
3. Ingresa DNI para ver las ciudades que coinciden con el dato.
4. Escribe una ciudad para ver el # de pasajeros.
5. Ingresa DNI para ver los paises que coinciden con el dato.
6. Ingresa un pais y mostrar el total de personas que viajan.
7. Terminar el programa
"""
viajeros = {}
paises = {}
print(menu)
dato_leido = int(input('Escriba una opcion para comenzar con el programa: '))
match dato_leido:
case 1:
print('Escriba los datos del pasajero: ')
case 2:
print('Agrega una ciudad a la lista:')
case 3:
print('Ingresa el DNI del pasajero para ver a que ciudad ha viajado: ')
case 4:
print('Ingrese una ciudad para ver el numero de pasajeros: ')
case 5:
print('Ingresa el DNI de una persona para ver a que paises viaja: ')
case 6:
print('Ingresa un pais y mostrar el total de personas que viajan: ')
case _:
print('Saliendo del programa en 3, 2, 1(FIN).')

Removing the break line of words form texts that are on a list

I am new here. I am a begginer with python so I am trying to write a code that allows me to remove the link break of a list in python.
I have the following list (which is more extense), but I will share a part of it.
info = ['COLOMBIA Y LA \nNUEVA REVOLUCIÓN \nINDUSTRIAL\nPropuestas del Foco \nde Tecnologías Convergentes \ne Industrias 4.0\nVolumen 9\nCOLOMBIA - 2019\nArtista: Federico Uribe\n\n-----\n\n-----\nPropuestas del Foco \nde Tecnologías Convergentes\ne Industrias 4.0\nTomo 9\nCOLOMBIA\nY LA NUEVA \nREVOLUCIÓN \nINDUSTRIAL\n\n-----\n© Vicepresidencia de la República de Colombia\n© Ministerio de Ciencia, Tecnología e Innovación\n© Elías D. Niño-Ruiz, Jean Paul Allain, José Alejandro Montoya, Juan Luis Mejía Arango, Markus Eisenhauer, \nMaría del Pilar Noriega E., Mauricio Arroyave Franco, Mónica Álvarez-Láinez, Nora Cadavid Giraldo, \nOlga L. Quintero-Montoya, Orlando Ayala, Raimundo Abello, Tim Osswald \nPrimera edición, 2020\nISBN Impreso: 978-958-5135-10-9\nISBN digital: 978-958-5135-11-6\nDOI: https://doi.org/10.17230/9789585135116vdyc\nColección: Misión Internacional de Sabios 2019\nTítulo del volumen 9: Colombia y la nueva revolución industrial\nPreparación editorial\nUniversidad EAFIT \nUniversidad del Norte\nCarrera 49 No. 7 sur - 50 \nDirección de Investigación, Desarrollo e Innovación\nTel.: 261 95 23, Medellín \nKm. 5 Vía Puerto Colombia, Área Metropolitana de Barranquilla\ne-mail: publicaciones#eafit.edu.co \nTel.: 3509420\n \ne-mail: dip#uninorte.edu.co\nCorrección de textos y coordinación editorial: Cristian Suárez-Giraldo y Óscar Caicedo Alarcón\nDiseño de la colección y cubierta: leonardofernandezsuarez.com\nDiagramación: Ana Milena Gómez Correa \nMedellín, Colombia, 2020\nProhibida la reproducción total o parcial por cualquier medio sin la autorización escrita del titular de los \nderechos patrimoniales.\n__________________________________\nColombia y la nueva revolución industrial / Elías D. Niño-Ruiz…[et al]. – Medellín : \n Colombia. Ministerio de Ciencia Tecnología e Innovación, 2020\n 175 p. -- (Misión Internacional de Sabios 2019).\n \n ISBN: 978-958-5135-10-9 ; 978-958-5135-11-6\n1. Educación – Colombia. 2. Educación y desarrollo – Colombia. 3. Desarrollo científico y tecnológico – Colombia. I. Niño-Ruiz, Elias D. \nII. Noriega E., María del Pilar, pról. III. Mejía Arango, Juan Luis, pról. IV. Abello Llanos, Raimundo, pról. V. Tít. VI. Serie\n370.9861 cd 23 ed.\nC718\n Universidad Eafit- Centro Cultural Biblioteca Luis Echavarría Villegas\n___________________________________\n\n-----\nTomo 9\nCOLOMBIA \nY LA NUEVA \nREVOLUCIÓN \nINDUSTRIAL\n\n-----\nBiotecnología, Bioeconomía \ny Medio Ambiente\nSilvia Restrepo, coordinadora \nCristian Samper \nFederica di Palma (Reino Unido) \nElizabeth Hodson \nMabel Torres\nEsteban Manrique Reol (España) \nMichel Eddi (Francia) \nLudger Wessjohann (Alemania) \nGermán Poveda\nCiencias Básicas y del Espacio\nMoisés Wasserman Lerner, coordinador \nCarmenza Duque Beltrán \nSerge Haroche (Francia, premio Nobel) \nAna María Rey Ayala \nAntonio Julio Copete Villa\nCiencias Sociales y Desarrollo \nHumano con Equidad\nClemente Forero Pineda, coordinador \nAna María Arjona \nSara Victoria Alvarado Salgado \nWilliam Maloney (Estados Unidos) \nStanislas Dehaene (Francia) \nJohan Schot (Holanda) \nKyoo Sung Noh (Corea del Sur)\nCiencias de la Vida y la Salud\nJuan Manuel Anaya, coordinador \nNubia Muñoz \nIsabelle Magnin (Francia) \nRodolfo Llinás \nJorge Reynolds \nAlejandro Jadad\nEnergía Sostenible\nJuan Benavides, coordinador \nAngela Wilkinson (Reino Unido)\nEduardo Posada \nJosé Fernando Isaza\nIndustrias Creativas y Culturales \nEdgar Puentes, coordinador \nRamiro Osorio \nCamila Loboguerrero \nLina Paola Rodríguez Fernández \nCarlos Jacanamijoy \nAlfredo Zolezzi (Chile)\nOcéanos y Recursos Hidrobiológicos\nAndrés Franco, coordinador \nWeildler Antonio Guerra \nJorge Reynolds \nJuan Armando Sánchez \nSabrina Speich (Francia)\nTecnologías Convergentes Nano, \nInfo y Cogno Industrias 4.0\nMaría del Pilar Noriega, coordinadora \nJean Paul Allain \nTim Andreas Osswald \nOrlando Ayala\nCoordinador de coordinadores\nClemente Forero Pineda\nCOMISIONADOS\n\n-----\nBiotecnología, \nBioeconomía y \nMedio Ambiente\nSecretaría Técnica – \nUniversidad de los \nAndes, Vicerrectoría de \nInvestigación \nSilvia Restrepo \nMaría Fernanda Mideros\nClaudia Carolina Caballero \nLaguna\nGuy Henry \nRelator \nMartín Ramírez \nCiencias Básicas \ny del Espacio\nSecretaría Técnica – \nUniversidad Nacional de \nColombia\nJairo Alexis Rodríguez López\nHernando Guillermo \nGaitán Duarte\nLiliana Pulido Báez\nRelator\nDiego Alejandro Torres \nGalindo\nCiencias Sociales y \nDesarrollo Humano \ncon Equidad\nSecretaría Técnica – \nUniversidad del Rosario, \nEscuela de Ciencias \nHumanas \nStéphanie Lavaux \nCarlos Gustavo Patarroyo \nMaría Martínez \nRelatores\nJuliana Valdés Pereira \nEdgar Sánchez Cuevas \nPaula Juliana Guevara \nPosada\nCiencias de la \nVida y la Salud', 'El gerente de relaciones públicas de Riot Games para la región, Juan José Moreno, retrató el fenómeno de League of Legends en la industria gamer.</li>\n\n<li>Creadoras de contenido relevantes expusieron varios consejos a las mujeres que están interesadas en emprender este camino.</li>\n\n</ul></div><div class=" cid-616 aid-184215">\n\t\t\t<div class="figure cid-616 aid-184215 binary-foto_marquesina format-png"><img src="articles-184215_foto_marquesina.png" alt="" width="960" height="400"></div>\n<p>Con éxito finalizó el tercer y último día de Colombia 4.0, el evento que reunió a la industria creativa y TI, tanto de manera virtual como presencial durante tres días en Puerta de Oro, en Barranquilla.</p>\n<p>Durante la tercera jornada, los asistentes pudieron presenciar a diversos conferencistas expertos en temáticas como la transformación digital en los jóvenes, el futuro de la industria de los videojuegos, las nuevas maneras de aproximarse a las audiencias y la creación de contenido digital. Así mismo, tuvo lugar un nuevo Foro Misión TIC 2022.</p>\n<p>A continuación, los momentos más destacados del tercer día de Colombia 4.0:</p>\n<h3>El fenómeno League of Legends</h3>\n<p>Juan José Moreno, gerente de relaciones públicas de Riot Games para América Latina, aseguró, durante su participación en Colombia 4.0, que busca ser más que una empresa de videojuegos y crear una experiencia completa a sus jugadores. Así, detalló que en 2016 el juego contaba con más de 100 millones de jugadores activos mensuales y en 2019 alcanzaron 8 millones de jugadores que se conectaban diariamente a jugar partidas simultáneas en todo el mundo.</p>\n<p>Por eso, en 2019 lanzaron una colección de ropa en alianza con Louis Vuitton, además crearon KDA, un grupo virtual de pop de LoL que se compone de los personajes más populares del juego. Esto se dio como respuesta a la necesidad de los streamers de tener canciones sin copyright para sus transmisiones, por lo que lanzaron un disco con 37 canciones originales para que las personas puedan usarlas sin problema.</p>\n<h3>El análisis FODA de las industrias 4.0</h3>\n<p>Ximena Duque, presidenta de Fedesoft, e Iván Darío Castaño, director ejecutivo de Ruta N, desarrollaron un análisis de fortalezas, oportunidades, debilidades y amenazas de las industrias 4.0 en el país. Entre las oportunidades que tienen estas industrias ambos coincidieron en que el mercado entendió que es el momento de transformar sus negocios hacia lo digital. Castaño instó a las industrias 4.0 a que aprovechen este momento, puesto que, dijo, hoy en día se pueden hacer muchos negocios sin que la territorialidad sea un límite.</p>\n<p>Hablando de los aspectos por mejorar, Ximena Duque se refirió a que aún se debe seguir trabajando por el cierre de brechas sociales, al tiempo que Castaño afirmó que el bilingüismo es algo en lo que el país debe avanzar. Eso sí, recordó que cuando se trata de bilingüismo hoy en día es necesario pensar en idiomas diferentes al inglés.</p>\n<h3>Consejos para las creadoras de contenido digital</h3>\n<p>En el último día de Colombia 4.0, algunas de las creadoras de contenidos más influyentes del país dieron sus mejores consejos para aquellas personas que están empezando en las redes sociales y quieren triunfar en el mundo digital.</p>\n<p>La influenciadora Valentina Lizcano comentó que esos influenciadores que se dedican a mostrar vidas perfectas en las redes sociales o hacen contenido aspiracional, no aportan mucho, por eso, la honestidad y ser genuinos es lo que va a ayudar a crear comunidades realmente fieles y sólidas. "Las mujeres debemos dejar de hablarnos con mentiras. Como somos nos vemos lindas. Nuestra realidad tiene que estar alineada con tu contenido", afirmó la actriz.</p>\n<h3>Pódcast como nueva manera de formar comunidad</h3>\n<p>Una de las conversaciones al respecto giró en torno al pódcast, es decir aquellos contenidos de audio que se distribuyen a través de plataformas, y a cómo esta herramienta puede convertirse, incluso, en una fuente de ingresos o de fidelización de comunidades para las empresas.</p>\n<p>La conversación fue entre Mauricio Cabrera, creador de Story Baker, y Alejandro Vargas, gerente general de Podway, quienes coincidieron en que el podcasting ha logrado democratizar el audio para que haya otras ideas por fuera de lo tradicional ya que ahora cualquier ciudadano tiene las herramientas necesarias para ser un creador.</p>\n<h3>Nuevo Foro Misión TIC 2022</h3>\n<p>El tercer foro de Misión TIC contó con la presencia de destacados invitados del sector de la tecnología que despertaron el interés de los asistentes por el apasionante mundo de las tecnologías, donde se analizaron las perspectivas y el rol que juegan las mujeres en las industrias TI del país.</p>\n<p>La introducción y bienvenida estuvo a cargo de Dennis Palacios Directora (E) de Economía Digital del Ministerio TIC, quien explicó los beneficios de Misión TIC e hizo una especial invitación a todos los colombianos, <em>"Hago una cordial invitación a todos los niños jóvenes y adultos del país a que se inscriban en la última convocatoria de Misión TIC \'</em>La última tripulación\' que tiene 50 mil cupos gratis para aprender programación", expresó Palacios durante la apertura.', 'En Norte de Santander hay aproximadamente 650 empresas de base tecnológica registradas en la Cámara de Comercio de Cúcuta, estás desarrollan software, contenidos digitales, aplicaciones, marketing y comercialización virtual. El departamento se ha convertido en una plataforma de despegue para estas ideas de negocio y las cifras muestran que cada vez ganan más terreno.</p>\n\n<p>\n\t<strong>Según Procolombia, en una nota publicada en su página web, las exportaciones de las industrias 4.0 llegaron a 407,5 millones de dólares en 2018, un incremento del 33 % en comparación con 2017.</strong></p>\n\n<p>\n\tLa entidad encargada de la promoción de los productos y la industria nacional reportó que 337 empresas colombianas hicieron negocios en más de 60 destinos. Además, el principal comprador fue Estados Unidos con 177,7 millones de dólares.</p>\n\n<p>\n\t“El apetito de los compradores internacionales por los servicios de las Industrias 4.0 de Colombia (BPO, software, salud, audiovisuales y contenidos digitales, comunicación gráfica y editorial) sigue ampliándose con ritmo acelerado”, reseña la entidad.</p>\n\n<p>\n\t<strong>Al desagregar los productos y servicios que hacen parte de la oferta de estas empresas, resalta el liderazgo de las ventas de software, que aportaron 159,7 millones de dólares, seguido por BPO, con 103,9 millones; audiovisuales y contenidos digitales, con 82,8 millones; salud, con 57,4 millones y comunicación gráfica y editorial, con 3,5 millones de dólares.</strong></p>\n\n<p>\n\tJuliana Villegas, vicepresidente de Exportaciones de Procolombia, indicó que “las ventas del país se han ‘desconcentrado’, porque antes el 80 % de las exportaciones nacionales de estos productos provenía de Bogotá. Ahora, hay zonas que han ganado participación como Antioquia, Valle del Cauca, Santander y Norte de Santander”.</p>\n\n<p>\n\tEl año pasado, el 56,6 %, es decir 230,8 millones de dólares, de las exportaciones salieron de Bogotá. Antioquia aportó el 18,8 % y Valle del Cauca, el 12,5 %. Sin embargo, al analizar las ciudades se destacan los aumentos de 107 % de Pereira (5,8 millones de dólares), del 48 % de Cúcuta (420.000 dólares) y del 10 % de Barranquilla (11,5 millones de dólares).</p>\n\n<p>\n\tEn Norte de Santander cuatro empresas llevaron al extranjero sus productos de\xa0software, contenidos digitales y BPO, con Estados Unidos y México como destinos.\xa0Las exportaciones de software ascendieron a 420.346 dólares, los contenidos digitales produjeron 36.285 dólares y el BPO fue avaluado en 28.950 dólares.</p>\n\n<p>\n\t<strong>La diversificación de creadores y exportadores de este tipo de contenido benefician al país en el incremento de su oferta.</strong></p>\n\n<p>\n\tEstados Unidos es el mayor comprador de la tecnología nacional con el 43,6 % del total de las exportaciones (177,7 millones de dólares) y los productos llegan a San Francisco, Miami, Los Ángeles, Washington, Nueva York, Houston, Atlanta, Dallas y Chicago.</p>\n\n<p>\n\t<strong>Trabajo articulado regional</strong></p>\n\n<p>\n\tDesde el 2016 existía la iniciativa de la Cámara de Comercio de Cúcuta y la Universidad Francisco de Paula Santander (Ufps) de crear un clúster para las industrias de base tecnológica.</p>\n\n<p>\n\tSin embargo, sólo hasta el año pasado se logró la unión de 23 empresas para aunar esfuerzos en pro de mejorar la productividad y abrirse nuevos mercados.</p>\n\n<p>\n\t<strong>Beatriz Vélez, empresaria del sector, dijo que el sector se enfoca en software para el sector salud y de educación. “Estos son los subsectores a donde más están apuntando los desarrolladores del departamento”, indicó.</strong></p>\n\n<p>\n\tLa rentabilidad y poca inversión inicial que se necesita para crear estas empresas es uno de los beneficios más grandes del sector. “No se necesita una gran infraestructura, se puede trabajar desde el garaje de una casa, lo importante es tener buen equipo (computador) e internet”, explicó Vélez.</p>\n\n<p>\n\t<img alt="" height="370" src="/sites/default/files/2019/03/05/imagenes_adicionales/e5.jpg" width="640" /></p>\n\n<p>\n\t<em>23 empresas componen el clúster Nortic del departamento, con el objetivo de impulsar y fortalecer el sector.</em></p>\n\n<p>\n\tSin embargo, la empresaria destacó que el trabajo en equipo es vital para desarrollar el software que venden estas empresas. “En Cúcuta hay mano de obra semi calificada y económica, esto beneficia a las industrias 4.0 de la región”, agregó la empresaria.</p>\n\n<p>\n\t<strong>William Trillos, gerente de Gnosoft, resaltó que las industrias 4.0 hacen parte del cambio de los procesos tradicionales en las empresas colombianas. “En cualquier tipo de actividad económica se pueden aplicar los productos que genera el sector”, manifestó.</strong></p>\n\n<p>\n\tEl gerente de Gnosoft estudió ingeniería de sistemas en la Ufps, luego de trabajar en varias empresas tomó la decisión de crear la suya.\xa0</p>\n\n<p>\n\tDe esta forma, en el 2007 empezó el trabajo para que naciera Gnosoft, empresa que ofrece asesoramiento al sector educativo para la introducción efectiva de las TIC.</p>\n\n<p>\n\t<strong>“Iniciamos fracasando en la salud, luego empezamos a trabajar con la educación y nos dimos cuenta que podíamos cambiar vidas a través de la tecnología, mejorando los canales de comunicación y automatizando los procesos de este sector”, explicó Trillos.</strong></p>\n\n<p>\n\tHoy, a Gnosoft la componen 18 empleados entre ingenieros de sistemas, analistas de diseño gráfico y contadores. Gracias a Procolombia Trillos y su equipo recibieron un curso para desarrollar exportación, “desde Cúcuta podemos ofrecer el servicio a cualquier país del mundo en donde allá conexión a internet, eso es una ventaja”, agregó el empresario.</p>\n\n<p>\n\t<img alt="" height="370" src="/sites/default/files/2019/03/05/imagenes_adicionales/e6.jpg" width="640" /></p>\n\n<p>\n\tOtra empresa que está entrando en el sector es Insegroup. Yordan Mantilla, uno de sus líderes, señaló que actualmente se desarrollan en el mercado eléctrico y en sus proyectos de automatización requieren nuevas tecnologías de las comunicaciones.</p>\n\n<p>\n\t“Enfocamos el desarrollo del concepto de ciudades inteligentes, creando soluciones para la cuantificación de variables ambientales. Otro proyecto es (T-Cyborg) que busca integrar el análisis de los sonidos de las ciudades para entender cómo percibe e interpreta su ciudad una persona ciega”, explicó Mantilla.</p>\n\n<p>\n\tInsegroup tiene una unidad de negocio que busca desarrollar los pilotos de sus proyectos en Cúcuta, para poner en práctica su oferta de servicios y ofrecerla a mediano plazo a nivel mundial.</p>\n\n<p>\n\t<strong>“Dentro de la validación del T-Cyborg, Latinoamérica y Centroamérica mostraron tener un potencial enorme para acceder a esa tecnología, la cual es de punta e innovadora”, indicó el empresario.</strong></p>\n\n<p>\n\tCamilo Puello, cofundador de Just Sapiens, convirtió una idea de negocio digital nacida en 2013, en una empresa. Hoy, su iniciativa se ha vendido a nivel regional y nacional.</p>\n\n<p>\n\t“En un par de meses buscamos vender la idea a nivel internacional, en el departamento hemos vendido el servicio a 35 abogados y a entidades públicas. En el país hemos llegado a Neiva, Santa Marta y Bogotá”, explicó Puello.</p>\n\n<p>\n\tA través del clúster se están desarrollando estrategias para enfocar a las empresas en segmentos de mercado con baja ocupación, donde la región con su portafolio de servicio puede apoyar en la generación de alto valor agregado con soluciones TIC.</p>\n\n<p>\n\t<strong>Vitrina internacional</strong></p>\n\n<p>\n\tUna delegación de cerca de 30 empresas colombianas, en las que no se incluía empresas nortesantandereanas, generó en el Mobile World Congress 2019, llevado a cabo en Barcelona, ventas por cerca de 2 millones de euros y expectativas de negocio de cerca de 50 millones de euros.</p>\n\n<p>\n\tProcolombia reseñó esta información en su página web, donde se aseguró que Colombia despuntó en Barcelona siendo la delegación Latinoamericana más grande.</p>\n\n<p>\n\tLa presidenta de Procolombia, Flavia Santoro manifestó que “el Mobile World Congress fue una gran oportunidad para mostrarle al mundo el valor agregado de las industrias 4.0 del país”.']
I want to remove every '\n' that is on the list because when I remove the special characters ("[\W]+"), some words, for example like "\nNUEVA" or "\nINDUSTRIAL", end up with an 'n' before the word ("nNUEVA" o nINDUSTRIAL"). What I need is to remove the 'break line' form each word of each text on the list, even if it is at the beggining, the end or between words.
I have tried:
lista_1 = []
lista_2 =[]
for it in info:
for q in it:
if q[0:2] != '\n':
lista_1.append(it)
else:
lista_2.append(it[2:])
and then:
new_list = lista_1 + lista_2
new_list
but I am getting: "memory error"
Does somebody knows how can I overcome this problem? or any other code I could use?
Thank you so much!
You can use list comprehension:
info = [i.replace("\n", "") for i in info]
You can use a generator comprehension and then join each entries of the list by a separator character, sep, I choose an empty string.
sep = '' # choose the separator character
text = sep.join(s.replace('\n', '') for s in info)

Not being able to answer tweets with twitter bot

I've made this bot to reply to tweets; it's detecting and registering the users id but it doesn't tweet at them and i don't know why.
What could it be?
I've deleted the token and keys from the code
the code should reply with one of the strings randomly from the listtt
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
FILE_NAME = "last_seen_id.text"
def retrieve_last_seen_id(file_name):
f_read = open (file_name, "r")
last_seen_id = int(f_read.read().strip())
f_read.close()
return last_seen_id
def store_last_seen_id(last_seen_id, file_name):
f_write = open(file_name, "w")
f_write.write(str(last_seen_id))
f_write.close()
return
def reply_to_tweets():
print("Trabajando como esclavo...")
last_seen_id = retrieve_last_seen_id(FILE_NAME)
listtt = ["Amo que me saquen mi foto. Prueba que existo" , "Todo el que diga que hizo una lagartija miente" , "Aquí está el secreto para ser feliz: solo finge que eres feliz y eventualmente olvidarás que estabas fingiendo" , "No estoy calificado para cubrir una noticia tan importante. Pero como hombre blanco heterosexual, avanzaré con confianza y asumiré que lo estoy haciendo bien" , "Si me disculpas, necesito tomarme una ducha, así no podré decir si estoy llorando o no", "No puedo, soy como una figura paterna para él. Me acosté con su madre." , "El concepto de las mujeres tomando sus propias decisiones ha llegado demasiado lejos? Hemos armado un diverso panel de hombres blancos con corbatas para hablar acerca del aborto. Caballeros?" , "Me acordaré, estoy sobrio" , "Soy responsable de mi propia felicidad? No puedo hacerme responsable ni de mi propio desayuno!" , "No te amo. No me amas. Solo somos dos personas solitarias tratando de odiarse un poco menos." , "Escuchame niño, no necesito la historia de tu vida. Solo vine aquí a suicidarme." , "Por favor, pueden poner alcohol en mi boca!?" , "Quiero que te vayas en silencio! Algunos de nosotros tratamos de olvidar que existes" , "I need help" , "Me sorprende cómo la gente se levanta cada mañana y dice: Nuevo día, vamos a hacerlo! Cómo hace la gente? No entiendo cómo" , "No tengo ni quiero hijos. Pero juzgo silenciosamente a todos los padres que veo por la calle." , "Hooray! A task!" , "Eso es lo que pasa cuando mezclas el apetito de un caballo con el apetito de alguien que está solo y con un agujero dentro, que necesita ser llenado constatemente con atención, comida y sexo." , "Solo necesito algo para concentrarme. Café! No, no. Cigarrillos! No. Tequila." , "Debo decir que estoy pasando el mejor momento de mi vida deprimido" , "Voy a contarle a todo el mundo esto. Soy de Geminis" , "Cuando miras a alguien a través de anteojos rosas, todas las banderas rojas son solo banderas" , "Y un día mirarás al rededor y te darás cuenta de que todos te aman... pero nadie te quiere" , "Todos los días es un poco más fácil. Pero tienes que hacerlo todos los días. Esa es la parte difícil. Pero se pone más fácil" , "You know, sometimes i feel like my whole life is just a series of loosely-related wacky misadventures" , "El universo es cruel, un vacío indiferente. La clave para ser feliz no es buscar un sentido. Es mantenerte ocupado con cosas sin importancia, y eventualmente, estarás muerto."]
mentions = api.mentions_timeline(
last_seen_id,
tweet_mode="extended")
for mention in reversed(mentions):
print(str(mention.id) + " - " + mention.full_text)
last_seen_id = mention.id
store_last_seen_id(last_seen_id, FILE_NAME)
api.update_status("#" + mention.user.screen_name + " " +
random.choice(listtt), mention.id)
while True:
try:
reply_to_tweets()
time.sleep(30)
except tweepy.error.TweepError:
continue
Did you change App permissons to "Read, Write, and Direct Messages" in Settings of your project? And after that you must regenerate keys and tokens.

How to format the content of any .txt file in one line by removing \n with Python?

Just a quick question guys... I would like to recover the content of a formatted .txt file in one line. for instance consider the following content of a .txt file:
Me encanta todos los electrodomésticos LG, ya que últimamente se han actualizado en un 200% en tecnología de punta respecto de las demás marcas que lo aventajaban antiguamente, sus repuestos son fáciles de encontrar en caso de defectos y mas económicos de otros, es una excelente secadora, gran capacidad de ropa y lo mas importante es que reúne las dos grandes funciones, lavar y secar en un sólo producto y cualquier persona la puede hacer funcionar, ya que su panel es muy sencillo y además no es ruidosa, se las recomiendo a todos.
Además, posee una gran característica que es, que si es que no quisieras utilizar todas las funciones, puedes seleccionar sólo las que desees, por ejemplo si es quires sólo lavar, se programa para esa función en específico y si es deseas todo el proceso menos secar, por ejemplo, de igual forma se selecciona las funciones requeridas.
I would like to recover it in one line like this:
Me encanta todos los electrodomésticos LG, ya que últimamente se han actualizado en un 200% en tecnología de punta respecto de las demás marcas que lo aventajaban antiguamente, sus repuestos son fáciles de encontrar en caso de defectos y mas económicos de otros, es una excelente secadora, gran capacidad de ropa y lo mas importante es que reúne las dos grandes funciones, lavar y secar en un sólo producto y cualquier persona la puede hacer funcionar, ya que su panel es muy sencillo y además no es ruidosa, se las recomiendo a todos. Además, posee una gran característica que es, que si es que no quisieras utilizar todas las funciones, puedes seleccionar sólo las que desees, por ejemplo si es quires sólo lavar, se programa para esa función en específico y si es deseas todo el proceso menos secar, por ejemplo, de igual forma se selecciona las funciones requeridas.
So far I tried this:
with open('/path/test_text.txt', 'r') as content_file:
content1 = content_file.read().splitlines()
print content1
Then, this is the output:
['Me encanta todos los electrodom\xc3\xa9sticos LG, ya que \xc3\xbaltimamente se han actualizado en un 200% en tecnolog\xc3\xada de punta respecto de las dem\xc3\xa1s marcas que lo aventajaban antiguamente, sus repuestos son f\xc3\xa1ciles de encontrar en caso de defectos y mas econ\xc3\xb3micos de otros, es una excelente secadora, gran capacidad de ropa y lo mas importante es que re\xc3\xbane las dos grandes funciones, lavar y secar en un s\xc3\xb3lo producto y cualquier persona la puede hacer funcionar, ya que su panel es muy sencillo y adem\xc3\xa1s no es ruidosa, se las recomiendo a todos.', 'Adem\xc3\xa1s, posee una gran caracter\xc3\xadstica que es, que si es que no quisieras utilizar todas las funciones, puedes seleccionar s\xc3\xb3lo las que desees, por ejemplo si es quires s\xc3\xb3lo lavar, se programa para esa funci\xc3\xb3n en espec\xc3\xadfico y si es deseas todo el proceso menos secar, por ejemplo, de igual forma se selecciona las funciones requeridas.']
The issue with the above code is that I get a comma separation from the newline: se las recomiendo a todos.', 'Adem\xc3\xa1s,. Is there any way to remove this type of special characters from the output?
Thanks in advance guys.
Try using join.
with open('/path/to/file') as f:
string = f.read().splitlines()
oneline = ''.join(string)
# do something with oneline
What you have is a list of values, where each value is a line. By joining them with no separator, you can get your one-line file.

Classifying data from .arff files with scikit-learn?

In a previous post i learned about the process to follow for classifying text with scikit-learn. In order to organize my data in a better way i discover .arff files let's say i have the following .arff file:
#relation lang_identification
#attribute opinion string
#attribute lang_identification {bos, pt, es, slov}
#data
"Pošto je EULEX obećao da će obaviti istragu o prošlosedmičnom izbijanju nasilja na sjeveru Kosova, taj incident predstavlja još jedan ispit kapaciteta misije da doprinese jačanju vladavine prava.",bos
"De todas as provações que teve de suplantar ao longo da vida, qual foi a mais difícil? O início. Qualquer começo apresenta dificuldades que parecem intransponíveis. Mas tive sempre a minha mãe do meu lado. Foi ela quem me ajudou a encontrar forças para enfrentar as situações mais decepcionantes, negativas, as que me punham mesmo furiosa.",pt
"Al parecer, Andrea Guasch pone que una relación a distancia es muy difícil de llevar como excusa. Algo con lo que, por lo visto, Alex Lequio no está nada de acuerdo. ¿O es que más bien ya ha conseguido la fama que andaba buscando?",es
"Vo väčšine golfových rezortov ide o veľký komplex niekoľkých ihrísk blízko pri sebe spojených s hotelmi a ďalšími možnosťami trávenia voľného času – nie vždy sú manželky či deti nadšenými golfistami, a tak potrebujú iný druh vyžitia. Zaujímavé kombinácie ponúkajú aj rakúske, švajčiarske či talianske Alpy, kde sa dá v zime lyžovať a v lete hrať golf pod vysokými alpskými končiarmi.",slov
I would like to experiment with scikit-learn and classify with a supervised aproach a complete new test string let's say:
test = "Por ello, ha insistido en que Europa tiene que darle un toque de atención porque Portugal esta incumpliendo la directiva del establecimiento del peaje"
Scipy provide an arff loader, let's load an arff file with this:
from scipy.io.arff import loadarff
dataset = loadarff(open('/Users/user/Desktop/toy.arff','r'))
print dataset
This should return something like this: (array([]), how can use numpy record arrays to classify with scikit-learn?.

Categories

Resources