#329 Tienes un MP
Hola buenas!
Estoy intentado crearme un csv gigante para practicar machine learning y crear un predictor de apuestas para los combates de la ufc.
He creado dos funciones que me permiten extraer información de los perfiles de los luchadores de www.sherdog.com. Uno para la información biográfica y otro para la información referente a sus peleas.
El problema me viene a la hora de pasar todos estos parámetros a un .csv donde pueda empezar a agregar todos los luchadores del sitio. He probado con open('ufc.csv', 'w') pero no me funciona.
Alguien puede echarme una mano? Pego ambas funciones, primero la que consigue informacion de la bio y despues la que consigue información de los records.
def scrapping_sherdog_bios(url):
user_agent = {'User-agent': 'Mozilla/5.0'}
peticion_url = requests.get(url, headers = user_agent)
if peticion_url.status_code != 200:
print("Se ha producido un error")
else:
codigo_fuente = peticion_url.text
bs_url = bs(codigo_fuente, 'html.parser')
name = bs_url.find('span', class_='fn').get_text(' ')
born = bs_url.find('span', itemprop = 'birthDate').get_text(' ')
age = bs_url.find('strong').get_text(' ')
birth_place = bs_url.find('span', itemprop = 'address').get_text(' ')
nationality = bs_url.find('strong', itemprop = 'nationality').get_text(' ')
height = bs_url.find('span', class_='item height').get_text(' ')
weight = bs_url.find('span', class_='item weight').get_text(' ')
association = bs_url.find('h5', class_='item association').get_text(' ')
division = bs_url.find('h6', class_='item wclass').get_text(' ')
fight_summary = bs_url.find_all('span', class_= 'counter')
fight_results = bs_url.find_all('span', class_='graph_tag')
wins = fight_summary[0].get_text(' ')
ko_tko = fight_results[0].get_text(' ')
submissions = fight_results[1].get_text(' ')
decissions = fight_results[2].get_text(' ')
losses = fight_summary[1].get_text(' ')
ko_tkoed = fight_results[3].get_text(' ')
submitted = fight_results[4].get_text(' ')
decided = fight_results[5].get_text(' ')
print(name,
born,
age,
birth_place,
nationality,
height,
weight,
association,
division,
wins,
ko_tko,
submissions,
decissions,
losses,
ko_tkoed,
submitted,
decided)
results = []
oponent = []
event = []
method = []
Round = []
time = []
def scrapping_sherdog_records(url):
user_agent = {'User-agent': 'Mozilla/5.0'}
peticion_url = requests.get(url, headers = user_agent)
codigo_fuente = peticion_url.text
bs_url = bs(codigo_fuente, 'html.parser')
with open('output.csv', 'w') as f:
for tr in bs_url.find_all('tr'):
tds = tr.find_all('td')
if len(tds) == 6:
results.append(tds[0].text)
oponent.append(tds[1].text)
event.append(tds[2].text)
method.append(tds[3].text)
Round.append(tds[4].text)
time.append(tds[5].text)
#334 no estaría de más que pusieras el error que te sale
igualmente prueba a abrirlo con el universal newline mode y se lo pasas al csv.reader
with open(f, 'rU') as csvfile:
csvreader = csv.reader(csvfile)
for row in csvreader:
print ', '.join(row)
#334 Donde exactamente guardas los parametros al csv? No veo que en ninguna linea lo escribas.
Y luego, copianos el error que te sale a ver
Dudilla, para realizar ventanas con botones etc.. vamos un interface gráfico de toda la vida, ¿que recomendáis?.
He visto que existe TKinter y wxPython. Alguien me recomienda otra librería o con estas vamos bien.
Y otra pregunta, tengo que dibujar un humanoide en 3 dimensiones, que se pueda mover las partes y demás. ¿Existe una librería que me pueda valer?. He mirado PyOpenGL. ¿Alguna otra idea?.
Gracias.
#340 Gracias, estuve mirando ayer y opte por usar Panda3D porque tenia muy buena pinta, cagada, es para python 2.7 y yo necesito que sea para python 3.X, así que me tocara seguir investigando.
También es para mi TFG
#341 si lo necesitas para desktop usa tkinter, queda un poco meh visualmente pero es easy y ya lo tienes.
He buscado y hay versiones de panda3D SDK para python 3.4 , mañana lo probare porque tengo que desintalar el pyton3.4 que tengo instalado y luego bindear las librerias a mano porque no se pueden instalar las de panda con pip.
Cada dia un reto nuevo, oye y aun ni una linea de codigo jajajaj
PD: he visto TKinter y visualmente es una ponzoña, tengo que crear un programa visualmente atractivo, pero gracias por la respuesta #342
#344 no puedes usar PyQt? tiene un editor muy bonito para ahorrarse trabajo
qt designer se llama
#345 pyqt mola pero yo no usaria el designer si no lo has tocado nunca. Tambien con qt puedes usar qml para comportamientos. Pyqt la ultima vez q lo toque tiene buena docu y tambien es cross xD
#344 #343 decia tkinter xq ya se tiene, es cross y es relativaente sencillo. Eso si claro, si tiene q quedar visualmente bonito olvidate xD
Si realmente lo de menos al final es la ventana de menus etc.. Tengo que crear un robot en 3D que se pueda mover con el usuario segun las articulaciones seleccionadas y se tiene que ver bien. Por tanto realmente el IDE es lo de menos al final, lo que me interesan son las librerias.
Me estoy apuntando todas las sugerencias, y el PyQt tiene pinta de ser facil facil para generarme las ventanas de los menus ,etc...
Sobre lo de que tkinter es horrible, no lo he usado nunca, pero supuestamente tkinter se puede ver con el mismo tema que tenga el usuario para su escritorio si tiras de esto: https://docs.python.org/3/library/tkinter.ttk.html
#348 es facil. Creas la interfaz que quieras, luegod esde el codigo la cargas asi por ejemplo
window = uic.loadUi("prueba.ui")
y una vez asi para acceder a los elementos pues pones
window.boton(o el elemento que sea, depende del nombre que le hayas dao en el designer)
#351 Si, así pienso hacer los menús, tengo que intentar facilitarme las cosas que ya vendrá lo jodido luego xD
¿Alguien me puede hacer un 'Explain like im Five' sobre cómo instalar frameworks? Porque estoy intentando instalarme django y me estoy volviendo loco. Lo he descargado y lo he descomprimido en el mismo directorio que Python, y se supone que para instalarlo tengo que usar este comando:
pip install Django==1.10.4
Lo cual me lleva a este error:
File "<stdin>", line 1
pip install Django==1.10.4
SyntaxError: invalid syntax
...y no se que hacer ahora xD.
#354 El que viene con Python 3.5 sirve? He estado viendo que me hace falta upgradearlo o algo de eso, lo cual es a través de un comando que tampoco me funciona.
Por cuestiones de los repositorios, versiones etc... He tenido algún problemas y desde hace un tiempo utilizo anaconda, prueba con el, seguro que te evitas problemas futuros.
#357 Pues estoy copiando y pegando y me sigue dando syntax error, al final he instalado Django con Anaconda como me ha dicho #356 y lo he comprobado así:
from django import get_version
get_version()
Y me ha dado la versión instalada (1.10), la cosa es que luego intento crear un proyecto con
$ django-admin startproject mysite
Y me da syntax error xD
Comprueba que python tienes primero en el path, a ver si estás ejecutando python27 para código de python3 o alguna historia de esas, haz:
which python
A ver que te sale
Aunque lo mejor sería que te hicieses un virtualenv y ahí pones la versión concreta de python que quieras y te dejas de lios
#359 seguro q es lo primero q recomiendan en la docu de django, instalar y configurar un venv y luego django. Es locurote no hacerlo.