» »

Bolha parser/pajek - prejemanje obvestil o novih oglasih

Bolha parser/pajek - prejemanje obvestil o novih oglasih

rokko ::

Pozdravljeni,

že v naprej se opravičujem če je post v napačni kategoriji ali kaka podobna tema že obstaja - je nisem našel :). Torej išče se pajek(crawler) za spremljanje(obveščanje) o novih "iskanih" oglasov na bolhi. Sigurno si je kdo že kaj takega omislil, le še posharat bi bilo treba.

Če si je mogoče že kdo kaj napisal bi z veseljem podelil kripto žetončke za opravljeno delo :), sicer bom active parser spisal sam.

R!

HotBurek ::

o novih "iskanih" oglasov na bolhi.

Kakšni so to novi iskani oglasi? A tisti iz autocompleta?
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

shadeX ::

Nekdo bi rad dobil nišo :) Not a bad idea.

Zgodovina sprememb…

  • spremenil: shadeX ()

sandmat ::

rokko je izjavil:

Torej išče se pajek(crawler) za spremljanje(obveščanje) o novih "iskanih" oglasov na bolhi. Sigurno si je kdo že kaj takega omislil, le še posharat bi bilo treba.


kdo ga išče? se išče sam?

Prehitro boš blokiran s strani bolhe, ker je takšno početje trivialno identificirati.

Mitja223 ::

PM me z detajli, čeprav se bojim, da oba iščeva isto stvar.

rokko ::

Očitno sem preveč zakompliciral vprašanje :), poenostavljeno; išče se aktivni "spremljevalec" novih oglasov in ob določeni ključni iskani besedi(oglasu) dobiš email/sms/whatever.. avto.net je to funkcijo(seveda pač za avte) imel že leta 2004, sedaj jo ponovno iščem na strani in mi nekako ne uspe zadeve najti? :|

blackbfm ::

Prehitro boš blokiran s strani bolhe, ker je takšno početje trivialno identificirati.


sam sem imel neko skripto svoj čas ki je delala poizvedbe vsakih 15 min.. nobene blokade ni blo

shadeX ::

Jaz sem pred časom spisal Android app za tole, kar OP sprašuje ampak sem jo upokojil, ko sem nehal dilat po bolhi. Ne moreš verjet koliko oglasov živi gor samo 5 minut.

In ja tudi sam nisem imel nobene blokade, sem pa osveževal stran na vsako minuto (na izdelek). Če bi imel v iskanju 20 izdelkov, bi osveževal stran 20x na minuto, ampak v praksi tega nikol nisem delal, ker sem targetiral povečini samo telefone.

rokko ::

shadeX; je apk še kje za dobit, če seveda bolha ni konkretno spremenila kode..?

shadeX ::

APK-ja nisem nikamor distributiral, je bil za osebno rabo in ga nimam več. Drugače pa v vsakem primeru zadeva ni več uporabna:

- Je delovala izključno prek mojega webservica (ker v primeru, da bi zadeva kam ušla, bi še vedno mel nek nadzor nad njo in sklopil zadevo na daljavo). Ta webservice že dolgo ne laufa več.

- Stvar je bila namenjena oglasom, ki niso plačljivi. Takrat je bolha mela to še v povojih in se nisem pretirano sekiral za to, po drugi strani pa so plačljivi oglasi najdražji in to ni bilo tisto kar sem si sam želel. Cilj appa je dobiti ugodne oglase v čimkrajšem času (ker so hitro prodani).

Torej že zaradi druge točke oglasi odpadejo ker vsaj v sekciji od telefonov, ne bi prikazalo nobenega več ker so sedaj vsi plačljivi.


P.S

Problem je bil tudi poraba baterije. Predstavljaj si ti skoz v ozadju hendlat neke podatke (uporaba neta, računanje, parsanje..). Telefon namesto 2 dni je zdržal nekje 15 ur, pa roke sem si lahko z njim grel. Če sem imel osveževanje na 20 minut, sem pa zgubljal oglase.

Zgodovina sprememb…

  • spremenil: shadeX ()

amacar ::

Zakaj bi to laufal na telefonu. Daš na nek poceni server pa je.
Za avtonet imam js cron na 5min na najcenejšem gostovanju v slo za 10EUR na leto.

Zgodovina sprememb…

  • spremenil: amacar ()

shadeX ::

Zakaj bi to laufal na telefonu.


Ker pred računalnikom nisi 24/7, telefon pa imaš skoz pri sebi in z njim tudi kličeš. Z enim klikom si prodajalca lahko takoj poklical, brez vpisovanja številke v dialpad.

amacar ::

Kakšen argument je pa to :)) Ko najdeš oglas ti skripta pošlje mail, sms in prav tako ne rabiš biti 24/7 pred računalnikom.

d4vid ::

amacar je izjavil:

Zakaj bi to laufal na telefonu. Daš na nek poceni server pa je.
Za avtonet imam js cron na 5min na najcenejšem gostovanju v slo za 10EUR na leto.



Bi lahko posheral skripto za avto.net?
Main PC: Asus PN50 | AMD Ryzen 5 4500U | 16 GB RAM | 256 GB SSD
PC2: HP Z400 | Intel Xeon L5630 | 6 GB RAM | 120 GB SSD
Laptop: HP Elitebook 840G1 | Intel i5 | 8 GB RAM | 256 GB SSD

shadeX ::

amacar je izjavil:

Kakšen argument je pa to :)) Ko najdeš oglas ti skripta pošlje mail, sms in prav tako ne rabiš biti 24/7 pred računalnikom.


Whatever works for you ...

xardas ::

Zakaj pa ne bi, recimo, laufali tole na piju? Ali pa uporabili kakšno storitev, ki v takšni ali drugačni obliki to funkcionalnost že ponuja?

Zgodovina sprememb…

  • spremenilo: xardas ()

rokko ::

xardas je izjavil:

Zakaj pa ne bi, recimo, laufali tole na piju? Ali pa uporabili kakšno storitev, ki v takšni ali drugačni obliki to funkcionalnost že ponuja?


Odlična "storitev", testiram in da vidimo :), tenks.

Sicer pa a res nima nihče spisane kake skriptice?

Primer uporabe:
http://www.bolha.com/iskanje?q=snowboar...

Če se pojavi nov oglas z ključnima besedama snowboard in ftwo dobiš mail, thats it.

popster ::

rss, samo bos moral najt stran ki to podpira, zal

rokko ::

bump, anyone?:)

amacar ::

Ce ga znas sam spisat (kot si omenil v prvem komentarju) je to najboljsa opcija. V tem casu bi bil ze napisan, sploh ce ne rabis nic fancy.

Smrkc ::

tole python skripto sem uporabil za iskanje koles, tako da pač spremeni url na kategorijo, ki te zanima. Ostalo boš pa tudi pogruntal...


import bs4
import unicodedata
import urllib2
import json

import time
import datetime

from najdisi_sms import SMSSender

def get_timestamp(string):
    date_time = string.replace(" ob", "").strip()
    if ". " in string:
        return time.mktime(datetime.datetime.strptime(date_time, "%d.%m. %Y %H:%M").timetuple())
    else:
        return time.mktime(datetime.datetime.strptime(date_time, "%d.%m.%Y %H:%M").timetuple())


def bolha(sms, buzz):
    for i in xrange(1,10):
        try:
            html = urllib2.urlopen("http://www.bolha.com/rekreacija-sport/kolesarstvo/kolesa/cestna-kolesa/?listingType=list&page={}".format(i))
        except Exception, e:
            print e, "Page", i, "does not exist"
            break

        soup = bs4.BeautifulSoup(html, "lxml")
        contents = [unicodedata.normalize('NFKD', at.contents[2].replace("\t","").strip()).encode('ascii', 'ignore')
                    for at in soup.find_all("div", class_="coloumn content")]
        titles = [unicodedata.normalize('NFKD', at.find("h3").text).strip().encode('ascii', 'ignore')
                    for at in soup.find_all("div", class_="coloumn content")]
        urls = [at.find("a")["href"].split("//")[-1].split("&")[0]
                    for at in soup.find_all("div", class_="coloumn content")]
        prices = [unicodedata.normalize('NFKD', at.text).strip().encode("ascii", "ignore")
                  for at in soup.find_all("div", class_="coloumn prices")]

        zipped = zip(titles, contents, prices, urls)

        for ad in zipped:
            relevant_text = [x.lower() for x in ad[:2]]
            if any(word in " ".join(relevant_text) for word in buzz):
                extended = urllib2.urlopen("http://www.bolha.com/{}".format(ad[-1]))
                #parse ad
                soup_ext = bs4.BeautifulSoup(extended, "lxml")
                ad_info = soup_ext.find("div", class_="adInfo")
                info_paragraphs = ad_info.find_all("p")
                if len(info_paragraphs) > 3:
                    #we've got private auction
                    added = get_timestamp(info_paragraphs[1].contents[1])
                    modified = get_timestamp(info_paragraphs[2].contents[1])
        #                         print title, "\n", content, price_
                    diff = (time.time() - modified) / 3600
                    text_message = "B:{title} za {cena}\n{vsebina}".format(cena = ad[2],
                                                                         title = ad[0],
                                                                         vsebina = ad[1])
                    if diff <= 1:
                        sms.send("040******",text_message[:160])

if __name__ == "__main__":

    sms = SMSSender('username', 'password')
    buzz1 = ["iščem", "vse", "te", "besede"]
    bolha(sms, buzz1)

rokko ::

Smrkc: poklon, že pridno laufa na cronu :), sem ti napisal na zs prošnjo po bilokaterem walletu, dobiš darilo :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Skripta za Bolho.

Oddelek: Programiranje
304365 (1777) planina91
»

Fake traffic generator

Oddelek: Omrežja in internet
192197 (1393) HotBurek
»

[python] project euler problem

Oddelek: Programiranje
151256 (808) Spura
»

Beleženje udeležbe v prometu (strani: 1 2 )

Oddelek: Loža
5810769 (7900) SeMiNeSanja

python pomoč

Oddelek: Programiranje
393379 (2300) Mavrik

Več podobnih tem