Herramientas de usuario

Herramientas del sitio


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