======= Ejemplo de script para extraer varias variables de meneame.net =======
Código para extraer título de noticia, número de meneames, número de clicks, número de comentarios de las 10 primeras páginas de meneame.net y guardarlo en un fichero .csv:
import csv
import urllib2
from bs4 import BeautifulSoup
outputpath = "links.csv"
with open(outputpath, "w") as outfile:
writer = csv.writer(outfile)
for counter in range(1,10):
url = "https://www.meneame.net/?page="+str(counter)
# Get URL
response = urllib2.Request(url)
pagedata = urllib2.urlopen(response)
html = pagedata.read()
# Get links
soup = BeautifulSoup(html, "html.parser")
boxes = soup.select(".news-body")
for box in boxes:
title = box.select("h2 a")[0].get_text().encode("utf-8").strip()
vote = box.select(".votes a")[0].get_text().encode("utf-8")
click = box.select(".clics")[0].get_text().encode("utf-8").replace(" clics", "").replace(" ", "").lstrip()
comment = box.select(".comments")[0].get_text().encode("utf-8").replace("comentarios", "").lstrip()
#print comment
writer.writerow([title,vote,click,comment])
===== Análisis de datos =====
Análisis del resultado con Databasic.io:
* Palabras con más frecuencia, bigramas y trigramas: https://databasic.io/es/wordcounter/results/5a7a4a4f7088b48e0b1c5fa3
* Distribución de datos en columnas: https://databasic.io/en/wtfcsv/results/5a7a45707088b48e0b1c5fa0
En R podemos hacer una rápida visualización para ver si hay correlaciones entre los valores numéricos:
meneame <- read.delim("links.csv",sep = ",")
plot(meneame)
# CArga las librerías. Si no las tienes insaltaladas tienes que instalaras con ''installed.packages("GGally)''
library(GGally)
library("tidyverse")
ggpairs(meneame,
columns = c(2:4),
title = "buscando correlaciones",
# upper = list(continuous = "density"),
aes(alpha = 0.1))
Esta es la visualicación que genera:
{{:taller-web-scraping-hirikilabs:meneame-relaciones.png?400|}}
Podemos ver los diagramas de dispersión que comparan las tres variables numéricas y los coeficientes de correlación calculados.