Creado clase de Exploring Task. Creado modulo de scraping utils
This commit is contained in:
parent
b1b7de13f8
commit
c0b398b9c6
13 changed files with 258 additions and 14 deletions
|
|
@ -1,9 +1,12 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
sys.path.append('..')
|
||||
import uuid
|
||||
import datetime
|
||||
from time import sleep
|
||||
|
||||
from core.mysql_wrapper import get_anunciosdb
|
||||
from core.scrapping_utils import UrlAttack
|
||||
|
||||
class Explorer():
|
||||
|
||||
|
|
@ -39,7 +42,7 @@ class Explorer():
|
|||
if not self.queue_is_up():
|
||||
break
|
||||
|
||||
self.compose_listing_url
|
||||
current_task = ExploringTask(self.compose_listing_url)
|
||||
|
||||
|
||||
|
||||
|
|
@ -80,19 +83,52 @@ class Explorer():
|
|||
|
||||
def compose_listing_url(self):
|
||||
#Decide que url hay que componer y la compone
|
||||
|
||||
raiz, orden = componer_raiz(p_orden, tipo_anuncios, ciudad)
|
||||
cantidad = calcular_cantidad_listado(anuncios_por_capturar)
|
||||
|
||||
lista_urls = []
|
||||
|
||||
for num in range(primera_pagina, cantidad + primera_pagina):
|
||||
lista_urls.append(raiz + 'pagina-' + str(num) + '.htm' + orde$
|
||||
raiz = 'https://www.idealista.com/'
|
||||
tipo = #Logica random
|
||||
ciudad = 'barcelona'
|
||||
numero = #logica random
|
||||
url = raiz + tipo + '-garajes/' + ciudad + '-' + ciudad + '/' +
|
||||
'pagina-' + numero + '.htm'
|
||||
|
||||
return url
|
||||
|
||||
|
||||
return lista_urls
|
||||
class ExploringTask():
|
||||
|
||||
#funcion que compone los strings de url de idealista
|
||||
#tiene en cuenta cuantos anuncios quedan por capturar
|
||||
#para decidir la cantidad de URLs a generar
|
||||
|
||||
def __init__(self, url):
|
||||
self.creation_date = Datetime.Datetime.now()
|
||||
self.target_url = url
|
||||
self.id = str(uuid.uuid4())
|
||||
self.status = 'Pending'
|
||||
|
||||
self.log()
|
||||
|
||||
def explore(self):
|
||||
self.attack_date = Datetime.Datetime.now()
|
||||
attack = UrlAttack(self.url)
|
||||
|
||||
attack.attack()
|
||||
|
||||
if attack.success:
|
||||
self.get_listings()
|
||||
if self.listings_ok:
|
||||
self.status = 'Success'
|
||||
else:
|
||||
self.status = 'Failure'
|
||||
|
||||
self.log
|
||||
|
||||
def get_listings(self):
|
||||
#TODO
|
||||
#Funcion que devuelva los listings limpitos
|
||||
|
||||
def log(self):
|
||||
#TODO
|
||||
#Funcion que grabe estado y demas en una mongodb o argo azin
|
||||
|
||||
def extract_listings(self):
|
||||
#TODO
|
||||
#Coge el html de una pagina de listado y pilla las referencias.
|
||||
#Si no cae ninguna, se considera un fail
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue