Cicklow
Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario popular!
Suscripción a IA
Buenas, hace bastante que no hacia un tutorial para el foro, pero, acá estamos... En este tutorial aprenderemos (o al menos lo intentaremos), crear un scraper de contenido de sitios ya caducado (osea que el dominio expiro), y le sacaremos el contenido que tenia (sus post) para:
- Crear contenido para nuestro sitio
- Crear contenido hacia nuestro sitio
Para esto necesitaremos tener instalado python +3 en nuestra pc/server/gato!
Luego necesitaremos instalar pip, que es el encargado de instalar los paquetes de python que necesitemos, veremos el tutorial en: instalar pip
Una ves descargado en nuestro dispositivo, abrimos la consola, nos dirigimos a donde extrajimos el contenido del zip (ejemplo C:\Users\Cicklow\Desktop\NebulaExpiredArticleHunter\) y ponemos el comando:
El cual nos instalara las librerías necesarias que usa nebula!
Cuando ya tengamos instalado todas las librerias, realizaremos una edicion al archivo scrapearticle.py, el cual lo editaremos para que nos sirva mejor.
Buscamos la funcion
Y la cambiamos por:
Por que el edit?, es para tener mas control sobre el contenido scrapeado y luego subirlo a donde lo necesitemos. Como vemos tenemos dos opciones, formato para blogger (no editemos ese...) u otro, este otro lo pueden editar a gusto.
El codigo lo que hace es recorrer las carpetas donde el scraper guardo nuestros post, los pasa por el template, y luego usando easyblogger, los postea!
Fix edit: En algunos casos el theme que tenemos en blogger nos saca parte del HTML (no se porque pasa esto, lo descubri creando la demo en un blog nuevo).
Entonces si pasa esto, editamos el script anterior y cambiamos:
por:
Lo que hacemos es crear un txt temporario, guardar el contenido del post y le indicamos a easyblogger que use ese archivo para subir el contenido... por lo demas el script continua funcionando igual.
Ejemplo "software", nos aparecera un listado de dominios, y los ordenaremos por "ACR", que son la cantidad de url en cache de WebArchive.org
le damos click al boton copiar al portapapeles (esto nos copiara las 25url que tenemos en pantalla). Una vez copiadas las url, vamos a la carpeta del nebula, buscamos/creamos el archivo expired_domains.txt y agregamos las url.
Volvemos a la consola de nuestro SO. y ponemos el comando python main.py esto lo que hace es comenzar a descargar los post que tengan los sitios webs caducados. Los guarda todos en la carpeta projects/dominiocaducado.com
El script puede tardar bastante dependiendo de la cantidad de url cacheadas!.
Luego instalamos pandoc
Esperamos que termine y luego ejecutamos:
el <yourblogid>lo obtenemos accediendo a nuestro blog (en blogger), viendo el codigo fuente y buscar algo como:
El cual 7642453 seria nuestro ID (ejemplo)
Volviendo a ejecutar el comando, el script nos abrira una url en nuestro navegador el cual le daremos permiso a easyblogger para que controle nuestro blogger (cualquier problema con este script, el git tiene las intrucciones necesarias).
Si vemos en el paso 3, tenemos algunas opciones para editar
- Las keys y sus respectivas url
Aca cambiamos las keys junto a las url de nuestros blogs.
- Cantidad de cambios
Esta variable nos permitira saber cuantos cambios hacemos respecto a las keys, por defecto es 1, osea que la primer palabra que encuentre con nuestra key, sera reemplazada por la url de nuestro blog. Si ponemos 2, reemplazara 2 keys iguales, etc...
- Template para los links
Este template nos permitira crear el formato de los links, no tiene mucho misterio, pero si es necesario agregar algo mas al link, desde ahi pueden.
- Directorios donde sacar los articulos
Aca colocaremos los dominios/nombre de la carpeta, desde donde nuestro script sacara los articulos. Esto esta echo asi porque el scraper por ahi junta muchas cosas que no necesitamos, ejemplo el post de las politicas de privacidad, contacto, esas cosas... Nos tendremos que tomar el trabajo, luego que el scraper termine, de ir recorriendo cada carpeta/dominio y sacar los post que no necesitemos.
-Template para los post en blogger
Este mini template le indicara a nuestro script como tendran que ser los post en blogger. Ustedes pueden editarlo respetando las palabras a reemplazar (#IMAGEN#, #TEXTO#)... Pueden editar el script para que si el post no tiene imagen, coloque una por defecto en:
Al ejecutar el script, easblogger posteara todo en nuestro blog.
y cambiamos el valor de esa variable (por cualquier cosa).
En WP usaremos el plugin https://wordpress.org/plugins/import-html-pages/ (ustedes usen el que gusten), lo configuramos indicando donde estaran los txt (tendremos que subir los txt a nuestro hosting), y como sacar el contenido... en nuestro ejemplo, le diremos que saque el titulo del post de entre <h1> y </h1> y el post desde <p> y </p> (todo esto se puede cambiar desde el archivo scrapearticle.py.
Le damos importar y tendremos un WP lleno de post, GRATIS!
Las ediciones o planes que tengan sobre esto, son suyas, ejemplo pueden buscar como modificar el texto para que no sea exacto a lo que hay, hacerles mejoras, etc... todo pueden hacerlo, siempre y cuando NO se les ocurra vender este tutorial como propio ni modificaciones del mismo!
Hay muchos script en github, es solo aprender a usarlo y agregarlos a nuestra programacion (si, les tocara aprender a programar, aunque sea un poco).
El script nebula usa una libreria bastante buena: https://github.com/codelucas/newspaper la cual con solo pasar la url de un post nos permite extraer el post, por si quieren mas detalles como funciona esa libreria, agregarle mas cosas al codigo base. O usarla para otras cosas!
Para todo esto, link de descarga (nebulahunter + script upload de blogger): https://mega.nz/file/q6ZSzQzJ#d-AjBk0FRktuu3Q2LMZ-iIJVQthBdAMBszw1MiVkcq8 (hay dos archivos para subir a blogger, uno usa lo de crear el archivo temporario y el otro no... vean cual les funciona mejor).
DEMO: https://freetarotonlinenow.blogspot.com/
Edit Con mejoras 1: https://forobeta.com/temas/autopost-generar-contenido.902045/post-8055728
- Crear contenido para nuestro sitio
- Crear contenido hacia nuestro sitio
Para esto necesitaremos tener instalado python +3 en nuestra pc/server/gato!
1 - Instalar python + pip
Vamos a https://www.python.org/downloads/ y descargamos la versión de nuestro SO, luego de descargarlo lo instalamos (el común y mas viejo: siguiente, siguiente siguiente)Luego necesitaremos instalar pip, que es el encargado de instalar los paquetes de python que necesitemos, veremos el tutorial en: instalar pip
2- Descargar / instalar Scraper / editar Scraper
Para esto utilizaremos el git de: https://github.com/eneiromatos/NebulaExpiredArticleHunter/ el cual nos permite descargar los post de los dominios caducados (usa el cache de web archive)Una ves descargado en nuestro dispositivo, abrimos la consola, nos dirigimos a donde extrajimos el contenido del zip (ejemplo C:\Users\Cicklow\Desktop\NebulaExpiredArticleHunter\) y ponemos el comando:
Bash:
pip install -r requirements.txt
Cuando ya tengamos instalado todas las librerias, realizaremos una edicion al archivo scrapearticle.py, el cual lo editaremos para que nos sirva mejor.
Buscamos la funcion
Python:
def __scrape_article(self) -> str:
wburl = self.__wburl
# Configuration for Newspaper.Article instance
conf_news = CfgNews()
conf_news.fetch_images = False
conf_news.browser_user_agent = config.user_agent
conf_news.request_timeout = config.request_time_out
article = Article(wburl, config=conf_news)
article.download()
article.parse()
self.__word_count = len(f'{article.text} {article.title}'.strip().split(' '))
if self.__word_count < config.min_word_len or self.__word_count > config.max_word_len:
return None
self.__title = article.title
return article.title + '\n' + article.text
Python:
def __scrape_article(self) -> str:
wburl = self.__wburl
# Configuration for Newspaper.Article instance
conf_news = CfgNews()
conf_news.fetch_images = False
conf_news.browser_user_agent = config.user_agent
conf_news.request_timeout = config.request_time_out
article = Article(wburl, config=conf_news)
article.download()
article.parse()
self.__word_count = len(f'{article.text} {article.title}'.strip().split(' '))
if self.__word_count < config.min_word_len or self.__word_count > config.max_word_len:
return None
self.__title = article.title
contenido = article.text.replace("\n", "<br/>")
paraquien = "blogger"
if(paraquien=="blogger"):
xPOST = {'title': article.title, 'keys': article.keywords, 'img': article.top_image, 'minitxt': article.summary, 'post': contenido}
return json.dumps(xPOST, indent=1, ensure_ascii=False)
else:
addimg = ""
if article.top_image:
addimg = "<img src='"+article.top_image+"'>"
xPOST = "<h1>" + article.title + "</h1><center>"+addimg+"</center><p>" + contenido + "</p>"
return xPOST
3- Archivo encargado de subir nuestro post a blogger
Este archivo que crearemos, nos permitira subir todo el contendo screapeado a blogger (usaremos blogger para crear backlinks hacia nuestro sitio real). y lo guardamos en la misma carpeta del nebula.
Python:
from os import system
import os
import json
import glob
import re
#keys y su url
rkeys = {"home":"https://www.google.com/","reading":"https://www.bing.com/","books":"https://www.yahoo.com"}
#cantidad de reemplazos
cantidadR = 1
#template para el link
tlink = "<a href='#URL#' target='_blank'>#KEY#</a>"
#id del blog (lo obtenemos al ver el codigo fuente de nuestro blogger, en /feed/ID_BLOGGER/)
BLOG_ID = "00000000000000"
#directorios de donde sacar los post (carpetas generadas por el scraper)
cualdir = ['dominiocaducad1.com','dominiocaducado2.com']
#template para los post
cualt = "template.txt"
f = open(cualt, "r")
ctemp = f.read()
f.close()
for dd in cualdir:
files = glob.glob('./projects/'+ dd +'/*.txt')
for ff in files:
with open(ff, encoding='utf-8') as f:
data = json.load(f)
ftxt = ctemp.replace('#TEXTO#',data['post'])
if data['img']:
ftxt = ftxt.replace('#IMAGEN#',"<img src='"+ data['img'] +"'>")
else:
ftxt = ftxt.replace('#IMAGEN#','')
for k,v in rkeys.items():
tmp_link = tlink.replace('#URL#',v).replace('#KEY#',k)
ftxt = ftxt.replace(k,tmp_link,cantidadR)
veamos = 'easyblogger --blogid '+ BLOG_ID +' post -t "'+ data['title'].strip() +'" -l "'+ ",".join(data['keys']) +'" --publish -c "'+ ftxt + '"'
system(veamos)
print("[+] Posteado: " + data['title'].strip() + "\n")
Fix edit: En algunos casos el theme que tenemos en blogger nos saca parte del HTML (no se porque pasa esto, lo descubri creando la demo en un blog nuevo).
Entonces si pasa esto, editamos el script anterior y cambiamos:
Python:
veamos = 'easyblogger --blogid '+ BLOG_ID +' post -t "'+ data['title'].strip() +'" -l "'+ ",".join(data['keys']) +'" --publish -c "'+ ftxt + '"'
system(veamos)
Python:
f_tmp = open("demofile.txt", "w")
f_tmp.write(ftxt)
f_tmp.close()
veamos = 'easyblogger --blogid '+ BLOG_ID +' post -t "'+ data['title'].strip() +'" -l "'+ ",".join(data['keys']) +'" --publish -f "demofile.txt"'
system(veamos)
os.remove("demofile.txt")
4- Obtener dominios caducados y scrapear
Para esto iremos a https://member.expireddomains.net/ (si no tenemos cuenta, nos creamos una, es gratis). Nos logeamos y buscamos la que que necesitemos.Ejemplo "software", nos aparecera un listado de dominios, y los ordenaremos por "ACR", que son la cantidad de url en cache de WebArchive.org
le damos click al boton copiar al portapapeles (esto nos copiara las 25url que tenemos en pantalla). Una vez copiadas las url, vamos a la carpeta del nebula, buscamos/creamos el archivo expired_domains.txt y agregamos las url.
Volvemos a la consola de nuestro SO. y ponemos el comando python main.py esto lo que hace es comenzar a descargar los post que tengan los sitios webs caducados. Los guarda todos en la carpeta projects/dominiocaducado.com
El script puede tardar bastante dependiendo de la cantidad de url cacheadas!.
5- Instalar easyblogger
Este script (easyblogger) lo que hace es permitirnos postear en blogger desde nuestra dispositivo. Para esto vamos a la consola de nuestro SO y ponemos:
Bash:
pip install EasyBlogger
Esperamos que termine y luego ejecutamos:
Bash:
easyblogger --blogid <yourblogid> get
HTML:
<link rel="alternate" type="application/atom+xml" title="Nifty Tidbits - Atom" href="http://blog.rraghur.in/feeds/posts/default" />
<link rel="alternate" type="application/rss+xml" title="Nifty Tidbits - RSS" href="http://blog.rraghur.in/feeds/posts/default?alt=rss" />
<link rel="service.post" type="application/atom+xml" title="Nifty Tidbits - Atom" href="http://www.blogger.com/feeds/7642453/posts/default" />
Volviendo a ejecutar el comando, el script nos abrira una url en nuestro navegador el cual le daremos permiso a easyblogger para que controle nuestro blogger (cualquier problema con este script, el git tiene las intrucciones necesarias).
6- Subir nuestros post a blogger
Ahora ejecutaremos el arhivo creado en el paso 3 con:
Bash:
py nombre_archivo.py
- Las keys y sus respectivas url
Python:
#keys y su url
rkeys = {"home":"https://www.google.com/","reading":"https://www.bing.com/","books":"https://www.yahoo.com"}
- Cantidad de cambios
Python:
#cantidad de reemplazos
cantidadR = 1
- Template para los links
Python:
#template para el link
tlink = "<a href='#URL#' target='_blank'>#KEY#</a>"
- Directorios donde sacar los articulos
Python:
#directorios de donde sacar los post
cualdir = ['dominio1.com']
-Template para los post en blogger
HTML:
<center>#IMAGEN#</center>
<p>#TEXTO#</p>
Python:
if data['img']:
ftxt = ftxt.replace('#IMAGEN#',"<img src='"+ data['img'] +"'>")
else:
ftxt = ftxt.replace('#IMAGEN#','<img src='URL_IMAGEN_DEFECTO'>')
Al ejecutar el script, easblogger posteara todo en nuestro blog.
7- Otros CMS
Nuestro script esta echo para funcionar en blogger, pero podemos hacerlo funcionar en WP, para esto vamos a scrapearticle.py buscamos
Python:
paraquien = "blogger"
En WP usaremos el plugin https://wordpress.org/plugins/import-html-pages/ (ustedes usen el que gusten), lo configuramos indicando donde estaran los txt (tendremos que subir los txt a nuestro hosting), y como sacar el contenido... en nuestro ejemplo, le diremos que saque el titulo del post de entre <h1> y </h1> y el post desde <p> y </p> (todo esto se puede cambiar desde el archivo scrapearticle.py.
Le damos importar y tendremos un WP lleno de post, GRATIS!
Notas finales
Todo esto nos genera contenido GRATIS para nuestro sitio, o para obtener backlinks, no es del todo automatico, pero nos sirve (hay soft pagos como article hunter, etc que hacen esto, pero, nosotros editamos a gusto y placer nuestro script).Las ediciones o planes que tengan sobre esto, son suyas, ejemplo pueden buscar como modificar el texto para que no sea exacto a lo que hay, hacerles mejoras, etc... todo pueden hacerlo, siempre y cuando NO se les ocurra vender este tutorial como propio ni modificaciones del mismo!
Hay muchos script en github, es solo aprender a usarlo y agregarlos a nuestra programacion (si, les tocara aprender a programar, aunque sea un poco).
El script nebula usa una libreria bastante buena: https://github.com/codelucas/newspaper la cual con solo pasar la url de un post nos permite extraer el post, por si quieren mas detalles como funciona esa libreria, agregarle mas cosas al codigo base. O usarla para otras cosas!
Para todo esto, link de descarga (nebulahunter + script upload de blogger): https://mega.nz/file/q6ZSzQzJ#d-AjBk0FRktuu3Q2LMZ-iIJVQthBdAMBszw1MiVkcq8 (hay dos archivos para subir a blogger, uno usa lo de crear el archivo temporario y el otro no... vean cual les funciona mejor).
DEMO: https://freetarotonlinenow.blogspot.com/
Edit Con mejoras 1: https://forobeta.com/temas/autopost-generar-contenido.902045/post-8055728
Saludos y buen scrape!
Última edición:

