zz_deprecated:infojobs_spider
This is an old revision of the document!
Table of Contents
Infojobs Spyder
Descripcion
Este script accede a infojobs basándose en una URL predefinida y recorre los identificadores, enviando únicamente los que no ha sido publicados previamente.
Instrucciones
Para que el script funcione, hay que crear el fichero de configuración, el script buscará en su propio directorio los ficheros *.conf para ejecutarlos todos (multiples búsquedas/usuarios). Para obtener la URL de búsqueda, hay que usar alguna extensión que capture los headers que lanza infojobs cuando se ejecuta la misma y luego cambiar la variable o bien, mirar la página de búsqueda y ver que categorías/subcategorías queremos y añadirlas a la URL. Como variables a tener en cuenta de la URL:
Variable | Descripcion |
---|---|
inicio=1 | No tocarla, es la primera página :P |
resultados=1000 | Número de resultados que nos muestra la primera página |
subcategoria | Las subcategorías, si se usa un conversor html a ascii se verán los caracteres “normales” |
Dependencias
- sqlite3
- bash >= 3.0
- wget
Config File
- krruke.conf
SEARCHURL='https://www.infojobs.net/jobsearch/search-results/list.xhtml?palabra=&of_area=150&of_pais=17&of_provincia=9&tipo_contrato=0&remuneracion_minima=0&remuneracion_maxima=0&remuneracion_formato=0&antiguedad=2&experiencia=0&ett=true&seleccion=true&inicio=1&inicio=1&&orden=10&poblacion=&nivel_estudios=0&jornada_laboral=0&subcategoria=3114%2C3113%2C3106%2C3107%2C3105%2C3110%2C3111%2C3108%2C3124%2C3109&origen_busqueda=8&origen_accion=4&canal=0&query_id=12573539010&poblacionIdGEO=0&poblacionGEO=&radioGEO=0&upsellings=false' DBFILE="/home/user/jobs_mailer/user.db" MAIL="user@monguimail.com"
Script
- jobs_mailer.sh
#!/bin/bash TMPFILE="/tmp/jobs_today_$(date +%s).html" SENDFILE="/tmp/jobs_save_today_$(date +%s).html" OFFERMARK="table_results_offer" INFOTAGS="prefijoPuesto prefijoPoblacion prefijoEmpresa" #AVOIDTHIS="Sant Cugat Del Vall|Sabadell" AVOIDTHIS="monguiland" get_data() { #wget -O- -q $SEARCHURL | grep -A 6 "<div class=\"cell-text\">$(date +%d/%m)</div>" > $TMPFILE local AUXOFFERID="" local AUXCOMPANY="" local AUXDESC="" local AUXURL="" wget -O- -q $SEARCHURL | grep -A 15 "<div class=\"cell-text\">$(date +%d/%m)</div>" | egrep "${OFFERMARK}" | awk -F\' '{print $4}' | sed "s,',,g" | head -100 | while read AUXOFFERID do if [ $(sqlite3 $DBFILE "SELECT count(OFFERID) from offers where OFFERID like '$AUXOFFERID' ;") -eq 0 ] then sqlite3 $DBFILE "INSERT INTO offers (id, OFFERID, is_sent) VALUES(NULL, '$AUXOFFERID', 1) ;" fi done } createdb() { if ! [ -f $DBFILE ] then sqlite3 $DBFILE "create table offers (id INTEGER PRIMARY KEY, OFFERID text, is_sent boolean) ;" fi } mailer() { local let UNSENTJOBS=$(sqlite3 $DBFILE "SELECT count(id) from offers where is_sent=1 ;") local SENDME="" if [ ${UNSENTJOBS} -gt 10 ] then > $SENDFILE sqlite3 $DBFILE "SELECT OFFERID from offers where is_sent=1 ;" | while read AUXOFFERID ; do echo "http://www.infojobs.net/barcelona/linux/of-i${AUXOFFERID} " >> $SENDFILE #wget -O- -q "http://www.infojobs.net/barcelona/linux/of-i${AUXOFFERID}" | egrep "${INFOTAGS// /|}" | awk 'BEGIN{FS = "[<>\"]"} {print $9}' >> $SENDFILE SENDME=$(wget -O- -q "http://www.infojobs.net/barcelona/linux/of-i${AUXOFFERID}" | egrep "${INFOTAGS// /|}" | awk 'BEGIN{FS = "[<>\"]"} {print $9}') if [ ! "$(echo "${SENDME}" | egrep "${AVOIDTHIS}")" ]; then echo "${SENDME}" >> $SENDFILE else sqlite3 $DBFILE "UPDATE offers set is_sent=0 where OFFERID LIKE '${AUXOFFERID}' ;" fi done sqlite3 $DBFILE "UPDATE offers set is_sent=0 where is_sent=1 ;" cat $SENDFILE | mail -s "Jobs $(date +%Y/%m/%d_%H:%M)" $MAIL fi } clean_all() { for i in $SENDFILE $TMPFILE do if [ -f $i ] then rm -f $i fi done } for i in $(dirname $0)/*.conf #for i in $(dirname $0)/jholgado-v3.conf do . $i createdb get_data mailer clean_all done
Programación
Mediante cron se pueden lanzar el script:
0,30 09-20 * * 1-5 /home/root/jobs_mailer/mail_jobs-02.sh
zz_deprecated/infojobs_spider.1526541122.txt.gz · Last modified: 2018/05/17 07:12 by dodger