Python - Avisador de ofertas de wallapop

 
Vista:
sin imagen de perfil

Avisador de ofertas de wallapop

Publicado por Jose Antonio (1 intervención) el 08/02/2017 12:41:43
Hola a todos.

Vereis, he descargado un programa en python en una web (no se si se puede dar la dirección, por eso no la pongo). Se trata de un programa para que me avise de las novedades que se suben a wallapop.

En los requisitos dice que necesitas python, obviamente, y me lo he descargado. Y también te dice que necesitas dimiurge, o demiurge, no me queda claro como se escribe. Este no se como descargarlo ni instalarlo :(

He guardado el código con la extensión .py pero no se como ejecutarlo.

Si podeis echarme una mano os estaría enormemente agradecido.

Adjunto el código por si os sirve de ayuda. Decir también que uso windows 7 como sistema operativo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import demiurge, os, pickle, tempfile
 
urlSearch = 'http://es.wallapop.com/search?kws=gameboy&maxPrice=&dist=0_&order=creationData-des&kws=sp+101&lat=41.398077&lng=2.170432'
urlWallapop = 'http://es.wallapop.com'
SAVE_LOCATION = os.path.join(tempfile.gettempdir(), 'alertWallapop.pkl')
data_save = False
 
# Demiurge for get products in Wallapop
class Products(demiurge.Item):
    title = demiurge.TextField(selector='a.product-info-title')
    price = demiurge.TextField(selector='span.product-info-price')
    url = demiurge.AttributeValueField(selector='div.card-product-product-info a.product-info-title', attr='href')
 
    class Meta:
        selector = 'div.card-product'
 
 
def sendPushBullet(title, body, url):
    command = "curl -X POST -H 'Access-Token: <You Token>' -F 'email={email}' -F 'type=link' -F 'title={title}' -F 'body={body}' -F 'url={url}' 'https://api.pushbullet.com/v2/pushes'".format(email='<You email>', title=title, body=body, url=url)
    os.system(command)
 
 
 
# Load after data search
try:
    dataFile = open(SAVE_LOCATION, 'rb')
    data_save = pickle.load(dataFile)
except:
    pass
 
# Read web
results = Products.all(urlSearch)
data_temp = []
 
for item in results:
    data_temp.append({'title': item.title
                      , 'price': item.price
                      , 'url': urlWallapop + item.url })
 
# Check new items
list_news = []
if data_save and data_save != data_temp:
    for item in data_temp:
        if item not in data_save:
            list_news.append(item)
 
# Send alert
for item in list_news:
    print(item['title'])
    print('-' * 10)
    sendPushBullet('Wallapop: ' + item['title'], item['price'], item['url'])
 
# Save data
data_save = open(SAVE_LOCATION, 'wb')
pickle.dump(data_temp, data_save)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Avisador de ofertas de wallapop

Publicado por xve (1646 intervenciones) el 08/02/2017 19:22:43
Hola Jose Antonio, para instalar demiurge puedes hacerlo desde pip...
1
pip install demiurge

No se que sistema operativo estas utilizando, si utilizas linux, tendras que instalar el paquete: python3-pip, si utilizas windows: https://pip.pypa.io/en/stable/installing/#do-i-need-to-install-pip

pip es un repositorio de objetos para python.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar