GNU/Linux - Hilo general

HeXaN

#5820 Eso es un percal.

1 respuesta
Intrak

#5821

¿Por qué dices que es un percal, por el tiempo que llevaría hacerlo o por qué?

Si es por eso, no creo que lleve tanto, he estado un tiempo trabajando en cosas similares, pero en Ruby.

De ahí que diga que no sé muy bien cómo hacerlo en Python y que tendría que investigar librerías y demás, pero no lo veo nada descabellado...

1 2 respuestas
HeXaN

#5822 Nada, perdóname, me he dejado llevar. Es trivial.

1 respuesta
Saphyel

#5823 #5822 yo el problema que veo es que MV sepa que has leido esos comentarios, no estoy seguro de como lo hace...

Deberiamos pedir una api a mv? xD

2 respuestas
Intrak

#5824 Haciendo login, manteniendo la sesión con cookies y visitando la página, MV debería tomar como que esa página ya la has leído.

Otra cosa que habría que saber es si está bien que publiquemos cómo automatizar estas cosas, que luego siempre se pueden llevar a mal y quizá no hagan gracia.

HeXaN

#5824 Se usa una librería que actúa con un navegador web, así que por eso no hay problema.

1 respuesta
Diward

#5826 Que libreria es? Por curiosidad. Scrapy? Request?

1 respuesta
HeXaN

#5827 Robobrowser. Luego pongo el código para hacer login en la web, por si a alguien le interesa.

1 respuesta
Diward

#5828 ME INTERESA!!!

Kaiserlau

eso es facil hacerlo e python con bs4 y mechanize lo dificil es el tiempo para dejarlo bonito y funcional sobre todo lo ultimo xd

Deoxys

Hombre, se podría hacer pero no es la idea. Sólo quiero que me enseñe mensajes nuevos, no quiero empezar a meterle cosas y acabar con un navegador de mv para consola xD

1 respuesta
HeXaN

#5831 Pero podrías pillar tus favoritos de forma automática y no manual, como ahora. Así no tienes que añadir nada cuando añadas más favoritos.

1 respuesta
Deoxys

#5832 Podría, pero añado favoritos nuevos una o dos veces al año como mucho. No compensa.

1 respuesta
HeXaN

#5833 Luego te paso el código y lo copy/pasteas, coño. Hay que hacer las cosas bien xD

2 respuestas
Kaiserlau

#5834 subelo a gh tio pls

Deoxys

#5834 A ver, que si queréis hacer un fork para que os de una palmada en el culo cuando hay mensajes nuevos por mí sin problemas, ¿Eh? Pero yo quería solucionar un problema muy muy concreto y lo que he hecho es mucho más que de sobra.

Tampoco me interesa que me avise de TODOS los favoritos, sólo de unos pocos threads que me interesan. Luego cuando entre a la web a contestar algo ya miraré los demás.

1 respuesta
Kaiserlau

#5836 yo eso no lo necesito xd pero siempre esta el factor ¯_(ツ)_/¯ yo si quereis hos paso por privi lo del foro de musica xd pero no esta acabado

1 respuesta
HeXaN
from robobrowser import RoboBrowser

browser = RoboBrowser()
browser.open('http://www.mediavida.com/login.php')
login = browser.get_form(class_='full')
login['name'].value = 'Kaiserlau'
login['password'].value = 'adorolospenes'
browser.submit_form(login)
browser.open('http://www.mediavida.com/foro/favoritos')
favs = browser.find_all('a', {"class": ["hb", "h"]})

for i in favs:
    print(i.text)

Todo tuyo #5837

1 3 respuestas
Saphyel

#5838 me parece un password muy romantico,

Kaiserlau

#5838 xdxdxd casi, es 2.x o 3?

1 respuesta
HeXaN

#5840 Tres, por supuesto.

Aziwar

En este caso es irrelevante no? No veo nada raro que no sea 2.7 xD

2 respuestas
Deoxys

#5842 print como función...

Una de las peores mierdas que han podido poner en python 3 :(

1 respuesta
Kaiserlau

#5842 era mas q nada para el venv

Aziwar

#5843 me refiero al código de hexan

Edit:vale no he dicho nada... No había visto el print xD

Kaiserlau

#5838

import time
from robobrowser import RoboBrowser
from colorama import Fore, Style

def main(Data):
    browser = RoboBrowser(user_agent='MvFvs_cli', parser="html.parser")
    browser.open('http://www.mediavida.com/login.php')
    login = browser.get_form(class_='full')
    login['name'].value = Data['user']
    login['password'].value = Data['key']
    browser.submit_form(login)
    time.sleep(10)
    browser.open('http://www.mediavida.com/foro/favoritos')
    favs = browser.find_all('a', {"class": ["hb", "h"]})

for i in favs:
    print(Fore.RED + i.text + Style.RESET_ALL)

if __name__ == '__main__':
    Data = {
    "user": "",
    "key": ""
    }
    main(Data)

He añadido el parser para bs4 por esto

spoiler
1 respuesta
HeXaN

#5846 Así te ahorras el warning cada vez que se ejecuta, yo uso lxml de parser.

1 respuesta
Kaiserlau

#5847 funciona pero no consigo loguear

fixed:
hay q añadir un sleep xD edito arriba, pues nada gg.

Deoxys

De esto que estaba preguntándome por qué no se actualizaba nada, y resulta que sólo comprueba posts en la última página (Cuando se pasa a una página nueva pasa del tema).

GGWP

1
HeXaN

Voy a ir parando ya, porque esto es un vicio xD

4 3 respuestas