- Se incorporó
- 16 Noviembre 2021
- Mensajes
- 436
Alguien por ahí me pidió (sí, los hago a pedido ) éste script para bajarse fotos de acáp (entre bajo su riesgo).
Yo se que mas de alguno por acá tiene la ilusión de guardar las fotiwis de las nudes, así que se los dejo de regalo, total ya está pagado el trabajo y me da no se qué dejarlo ahí tirado, a parte que se que a varios les gusta/intriga el web scraping
Advertencia:
Versión de Python: 3.8 (no he probado anteriores)
Módulos necesarios:
Instalar Python LXML
Instalar módulo Requests
Instalar módulo CSS Select
Uso:
Es una herramienta CLI, tiene 2 parámetros, el nombre de la carpeta donde se guardará todo, y la url. Además en el source tiene que asignarle una carpeta a la variable packsFolder en la línea 8, para que todos los "packs" se guarden en un lugar definido.
Si hizo todo bien la ejecución debería ser algo así:
Luego, como tenemos configurada la carpeta img para guardar los packs, se debería ver algo así:
¿Cuanto cuesta algo así?
El cliente pagó 80K. Y estuvo entre el almuerzo y la once. (Para saciar su curiosidad).
PD: No baja fotos de instagram... ese no es gratis (y esa cazuela se está cocinando todavía)...
PD2: Se viene el medio asado el fin de semana
Source
Yo se que mas de alguno por acá tiene la ilusión de guardar las fotiwis de las nudes, así que se los dejo de regalo, total ya está pagado el trabajo y me da no se qué dejarlo ahí tirado, a parte que se que a varios les gusta/intriga el web scraping
Advertencia:
No me hago responsable de nada, Úselo con responsabilidad. No lo use en el compu de la pega. Ni en el de la pareja.
Versión de Python: 3.8 (no he probado anteriores)
Módulos necesarios:
- lxml
- requests
Instalar Python LXML
Bash:
sudo apt-get install python3-lxml
Instalar módulo Requests
Bash:
pip3 install requests
Instalar módulo CSS Select
Bash:
pip3 install cssselect
Uso:
Es una herramienta CLI, tiene 2 parámetros, el nombre de la carpeta donde se guardará todo, y la url. Además en el source tiene que asignarle una carpeta a la variable packsFolder en la línea 8, para que todos los "packs" se guarden en un lugar definido.
Si hizo todo bien la ejecución debería ser algo así:
Luego, como tenemos configurada la carpeta img para guardar los packs, se debería ver algo así:
¿Cuanto cuesta algo así?
El cliente pagó 80K. Y estuvo entre el almuerzo y la once. (Para saciar su curiosidad).
PD: No baja fotos de instagram... ese no es gratis (y esa cazuela se está cocinando todavía)...
PD2: Se viene el medio asado el fin de semana
Source
Python:# -*- coding: utf-8 -*- from lxml import html from os import mkdir from os.path import basename, exists from sys import argv from requests import get # SETUP PACKS FOLDER HERE packsFolder = './img/' def run(): if len(argv) < 3: print('[ERROR] Folder name not given!') print('[ERROR] Portalnet.cl url not given!') exit() if not 'https://www.portalnet.cl/temas/' in argv[2]: exit('[ERROR] Given URL do not match to Portalnet.cl!') packOutFolder = f"{packsFolder}{argv[1]}" # ADD / AT END OF PATH if packOutFolder[-1] != '/': packOutFolder += '/' # CREATE FOLDER if not exists(packOutFolder): print(f"[INFO] Creating: '{packOutFolder}'...", end='') mkdir(packOutFolder) print('[DONE]') # REQUEST HTML r = get(argv[2]) if r.status_code == 200: dom = html.fromstring(r.text) imgList = dom.cssselect('#messageList')[0] \ .cssselect('li')[0] \ .cssselect('blockquote.messageText')[0] \ .cssselect('img.bbCodeImage') imgLinks = [img.get('data-src') for img in imgList] # DOWNLOAD PHOTOS if len(imgLinks) > 0: print(f"[INFO] {len(imgLinks)} photos found!") for imgLink in imgLinks: imgName = f"{packOutFolder}{basename(imgLink)}" print(f"[INFO] Downloading: {imgLink}...", end='') # AVOID IF ALREADY EXISTS if exists(imgName): print('[AVOID: ALREADY EXISTS!]') continue with get(imgLink, stream=True) as imgR: if imgR.status_code == 200: with open(imgName, 'wb') as imgFile: for chunk in imgR.iter_content(chunk_size=8192): imgFile.write(chunk) print('[COMPLETE]') else: print(f"[ERROR: HTTP CODE {imgR.status_code}]") else: print('[INFO] No photos found in first thread!') else: exit("\n[ERROR] HTTP_CODE: " + r.status_code) # CLI PARAMETERS # 1: FOLDER NAME INSIDE packsFolder # 2: PORTALNET LINK if __name__ == '__main__': try: run() except KeyboardInterrupt as e: print('\n\n...Aborted!')
Última modificación: