taller-web-scraping-hirikilabs:napartheid
¡Esta es una revisión vieja del documento!
Objetivo: Descargar todas las páginas de todos los números del fanzine Napartheid. Página web: www.napartheid.net Características del fanzine: Fanzine publicado entre 1998-2001, con un total de 30 números. Igor (ileturia) & Natxi (iperugorria@gmail.com) Fecha: Febrero 7, 2018
Página de inicio del scraping: http://www.napartheid.net/nap/napar/napar.htm
En esa página hay: 1) links a 8 números de revista 2) link a “hurregoa” con otros 8, y así sucesivamente.
En lugar de ir recorriendo los “hurrengoa”, como se ha observado que todas las revistas tenían urls específicas, y además solamente funcionaban los links de 13 de ellas, hemos escrito las urls en una lista.
import urllib2 import re import wget import os from bs4 import BeautifulSoup for revista in ['01','02','03','04','05','06','07','08_9','10','11','13']: print revista os.mkdir(revista) url_revista = 'http://www.napartheid.net/nap/napar/'+revista pagina = 1 page_error = False while not page_error: print '\t',pagina if pagina==1: url_pagina='/default.htm' else: url_pagina='/Page'+str(pagina)+'.htm' print '\t',url_revista+url_pagina try: # Get URL response = urllib2.Request(url_revista+url_pagina) pagedata = urllib2.urlopen(response) html = pagedata.read() # Get links soup = BeautifulSoup(html, "html.parser") links = soup.select('a') for link in links: href = link.get('href') if not href.endswith('default.htm') and not re.search('Page[1-9]\.htm',href): url_preview=url_revista+'/'+href print '\t\t'+url_preview response2 = urllib2.Request(url_preview) pagedata2 = urllib2.urlopen(response2) html2 = pagedata2.read() soup2 = BeautifulSoup(html2, "html.parser") url_imagen = soup2.select('img')[0].get('src') url_imagen=url_revista+url_imagen[2:] print '\t\t\t'+url_imagen wget.download(url_imagen,revista+'/'+url_imagen.split('/')[-1]) except: page_error=True pagina = pagina + 1
taller-web-scraping-hirikilabs/napartheid.1518027576.txt.gz · Última modificación: 2018/02/07 19:19 por iperugorria