[Python] Hilo general

B

#1046 minar bitcoins te puedes sacar 50 eurazos

1 respuesta
B

#1051 pero eso sigue siendo rentable?

HeXaN

¿Qué tiene que ver con Python los créditos de AWS que tengas?

1 respuesta
B

#1053 machine learning?

1 respuesta
aren-pulid0

#1054 si

Pizzelio

Pycharm tampoco lo pilla así que tiene que ser fallo "mío" (del libro). Este es el ejemplo:
https://pastebin.com/hsaiFgLJ

Se quejan de la línea 11, en concreto de ejecutarLogicaDeCompuerta()

4 respuestas
B

#1056 puede ser porque haya dos métodos ejecutarLogicaDeCompuerta en las clases hijas? una pregunta por si es por otra cosa ¿las clases están en el mismo fichero?

1 respuesta
B

.

1 respuesta
bLaKnI

#1056 No hombre, esto es facil...

Python no tiene "interficies" como tal, pero uno debe respetar las declaraciones al uso. Por logica de definición.
Veamos: es logico que un hijo, tenga metodos que el padre no tiene. Así como que este hijo llame a dichos metodos propios o metodos de su padre, via super(), por ejemplo.
Lo que no es logico, es que un padre, llame a metodos existentes solo en los hijos, por mas que estos sean herederos de dicho padre.

En resumen: Python te traga lo que has hecho aqui, pero otro lenguaje como Java no te dejaría. Debes definir el metodo "ejecutarLogicaDeCompuerta" en las clases padres, aunque sea con un "pass". Luego el self, segun donde lo ejecutes, se encargará de seleccionar el scope. Y si lo has tenido que llamar desde el padre, es que no tienes bien definida la estructura.
O debes pensar en un factory singleton, etc... Patronado, en definitiva.

Y si, entiendo que has querido llevar al padre, metodos que son homólogos en todas las clases hijas y que no quieres definirlos cada vez. Pero si te paras a pensar, este metodo lo podrias poner en el def str.

1 respuesta
eondev

#1056 pero lo tienes todo en un fichero o qué estructura de carpetas tienes? pasa el zip del proyecto
edit:
Acabo de ver el pastebin, normal que no te lo pille, está haciendo un hack con el lenguaje xD. Está pasandole el self al __init__ (constructor) y al final la clase padre de todas recibe un self ya construido, pero no solo eso, sino que además no está llamando a la clase padre como un super, sino como una instancia. Al final el padre usa self con unos atributos y métodos que no son propios de la propia clase porque el self no es suyo, es de CompuertaAND CompuertaOR CompuertaNOT

Qué libro es ese y qué se supone que te quiere enseñar? Porque el que ha escito eso es un poco gilipollas, hacer eso sólo tiene sentido si es una clase abstracta y no tendría que tener implementado nada dentro de la función.

1 respuesta
Zeroner

#1027 yo no usaría selenium bajo ningún concepto, existiendo cosas como puppeteer... https://github.com/pyppeteer/pyppeteer

1 respuesta
Pizzelio

#1060 #1059 #1058 #1057 Perdonad que ayer ya no me pude meter, el libro es este: https://runestone.academy/runestone/static/pythoned/index.html

Es la traducción de uno de los recomendados por aquí, miré la versión en inglés y lo hacía exactamente igual de todas formas.

Al final lo que hice fue definir el método en el padre y ponerle un pass.

Si quisiera hacerlo bien, cuál sería la forma adecuada de estructurarlo?

Gracias a todos por las respuestas

1 respuesta
eondev

#1062 metodo/clase abstracta e implementación en cada clase donde se va a usar. No tiene sentido ese código.

Si quieres ahora luego te paso un ejemplo de como lo dejaría yo

1 2 respuestas
Pizzelio

#1063 Vale, te lo agredezo. Cuando tengas un rato tampoco hay prisa

hda

#1061 pupeteer, pyppeteer, selenium o requests.

¿Por qué recomiendas pupeteer (aunque enlaces pyppeteer)?

2 respuestas
HeXaN

#1065 Es la implementación en Python de la librería de JS. Pero vamos, al final es lo mismo usar uno que otro.

1 1 respuesta
Zeroner

#1065 #1066 enlazo pyppeteer porque entiendo vas a usarlo desde python

No tiene sentido que hables de requests. La duda que tienes que responder es: me hace falta ejecutar realmente javascript para interactuar con la web / obtener el dato que necesito? Siempre que puedas evitar tener que ejecutar javascript, mejor. Normalmente viendo el network tab puedes ver el POST que hace el form y podrás replicarlo casi seguro sin tener que tener un browser entero...

Pyppeteer de cara a ejecutarlo en headless de forma masiva no tiene comparativa (ej de saas https://www.browserless.io). Selenium sigue siendo potente de cara a testing, sobre todo porque es cross-browser, aunque habrá que ver cómo evoluciona https://github.com/microsoft/playwright

1 respuesta
Zeroner

#1027 https://github.com/bankscrap/bankscrap-sabadell btw

1 1 respuesta
hda

#1067 preguntaba concretamente por pupeteer. En el proyecto que estoy uso requests siempre que sea posible y selenium en cualquier otro caso. Esto es el 90% de mi trabajo hasta la siguiente fase.

Como no conozco las ventajas de pyppeteer a las que aludes ( #1067 ), pregunto.

Obviamente no cambiaré después de haber desarrollado unos 150 códigos para 150 páginas en request/selenium. Si las ventajas que comentes fuesen buenas y estuviese al principio, pues me lo plantearía.

1 respuesta
Zeroner

#1069 Al final es un tema de volumen. En el curro lanzamos unos 20M de requests semanales via headless con puppeteer. En el pasado trabajé con Selenium y tenías que mantener un "selenium grid" monstruoso.

1 1 respuesta
hda

#1070 caramba, son unas cuantas O_O

Kaiserlau

#1063 y nunca volvió

1 respuesta
eondev

#1072 no he tocao un pc desde entonces xDD

No decias que no le hiciese los deberes? Xdffd

bLaKnI

#1068 Interesante! Pero no thanks...
Ataca a la API, scrapeando a malas desde la app en Android (juegan a simular ser un telefono Android).
Prefiero atacar la web.

Respecto al Puppeter en Python, me parece guay del paraguay. Lo cataré. Quería antes probar Selenium via PhantomJS, ya que no necesito chrome. Y en mi caso, creo ha quedado claro porque me tiré a Selenium no? No hay manera de conseguir los valores necesarios para el POST via request, si no es "ejecutando" el JS.

Isengard

Hablando de Puppeter igual se me ha pasado en el hilo... algún tutorial BBB?

NeV3rKilL

#1027 Por qué logearte en la web en vez de ir contra la API ? ¿La API es solo para empresas o algo?

1 respuesta
bLaKnI

#1076 No. Solo que es teledirigida. Prefiero el wild wild west.

1 respuesta
NeV3rKilL

#1077 A mim e ha dado miedo tu post. Ten a mano el número de atención al cliente del banco por si, dios no lo quiera, te lockean el acceso.

1 respuesta
bLaKnI

#1078 Nada hombre. Estuve jugando un poco el otro dia y ya... no es algo a lo que le este dando bombo. Si algun dia me interesa, apretaré a tope, almacenando en punto contiguo y se acabó.

MaSoBa

Hace unos años me pegué un poco con el webscrapping pero de una forma muy rudimentaria para generar una página con enlaces a partidos de fútbol para mi padre.

Viendo que estáis hablando de webscrapping me ha entrado el gusanillo de aprender bien. Me gustaría realizar un bot de telegram para que me avise de las nuevas subidas a HD-Spain. Así ya tengo un objetivo marcado. Para quien sepa del tema, ¿qué me tendría que mirar para empezar?

3 respuestas