Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  8 5408
Hei,

Jeg lurte på om det var mulig eller eventuelt finnes ett script som sjekker "unormale priser" til annonser på finn.no? Altså ta følgende eksempel:
VW UP ligger på 60k. Så kommer det opp en som koster 20k, fordi den selvfølgelig har noen feil.
Man kan selvfølgelig bruke Finn varsler, men problemet er at det er en himla jobb å legge inn enhver bil med spesifikk årsmodell, motor, km.stand osv...
Alternativt hadde det vært mulig å lage ett script som automatisk genererte "lagret søk" resultater og automatisk satt en pris som er lavere enn den billigste annonsen til det spesifikke lagret søket?
Håper dere skjønner hva jeg vil fram til.

- Takk
Sikkert vanskelig - Finn.no har bevisst gjort det vanskelig å "scrape" siden deres for info.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av lroedal Vis innlegg
Sikkert vanskelig - Finn.no har bevisst gjort det vanskelig å "scrape" siden deres for info.
Vis hele sitatet...
Har ikkje finn eit API som vil vere dekkande? Det ser ut som du kan søke og vise annonse med APIet.

https://www.finn.no/api/doc
Noen andre med innspill?
Hva vil du ha innspill på?

Ja, det er lett å lage.
Nei, det finnes trolig ikke noe offentlig tilgjengelige vedlikeholdte script for å gjøre det.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av PS3HACKER Vis innlegg
Noen andre med innspill?
Vis hele sitatet...
Har du undersøkt om APIet vil kunne dekke funksjonaliteten du etterspør?
Sitat av vidarlo Vis innlegg
Har du undersøkt om APIet vil kunne dekke funksjonaliteten du etterspør?
Vis hele sitatet...
Fra FAQ:

The API is available to advertisers and business partners only. The advertiser has ownership to his ad, therefor we can not allow third party usage. However, we would like nothing more than to expose APIs to "open data" as soon as there are any available.
Vis hele sitatet...
Jeg tipper nei. Lekte med tanken om noe lignende for boligannonser tidligere, og tror jeg fant ut at man kun hadde tilgang til annonser man selv hadde lagt ut, mulig «business partners» har utvidet adgang, men jeg følte det ble litt overkill å etablere et forretningssamarbeid med finn.no bare for å finne et billig krypinn til meg selv.
Finn har sikkert rettningslinjer som forbyr scraping av innhold, men teknisk sett er det ikke så veldig vanskelig.

Kode

const got = require('got');
const cheerio = require('cheerio');

const url = 'https://www.finn.no/car/used/search.html?make=0.817&model=1.817.2000208&sales_form=1';


(async () => {
	try {
		const response = await got(url);

    const $ = cheerio.load(response.body);
    const data = [];

    $('.result-item').each((i, e) => {
      const title = $(e).find('h3').text();
      const url = $(e).find('a[data-finnkode]').attr('href');
      const attributes = $(e).find('p.t5 span');

      const year = $(attributes[0]).text();
      const milage = $(attributes[1]).text();
      const price = $(attributes[2]).text();

      data.push({
        title: title,
        url: url,
        year: year,
        milage: milage,
        price: price,
      });
    });
    
    console.log(data);

	} catch (error) {
		console.log(error);
		//=> 'Internal server error ...'
	}
})();
Eksempelet over bruker node.js til å hente en søkeside, lete gjennom etter alle bilene og lager et array av biler med tittel, url, år, pris og kilometerstand.

Med dette som utgangspunkt skal du kunne skrive logikken du trenger til å finne unormale priser og lignende.
▼ ... noen uker senere ... ▼
Beklager om dette er en død thread. Yochi, det du gjør der fungerer fint til å hente ut opplysningene du nevnte fra et søk, men OP sa at det han vil unngå å måtte lage et slikt søk til f.eks hver bilmodell. Det der er helt fin node.js som gjør det nest siste steget i et stort program. Det viktige og vanskelige steget OP ber om hjelp til kan fungere ved å se gjennom alle nye finnannonser, søke etter modellen i et finn-søk og deretter kjøre ditt script. Da sammenligner den alle biler med tilsvarende biler(i den grad folk klarer å merke finn-annonser med en god tittel). Etter der igjen kommer pris-avvik-funksjonaliteten.

Dette kan for eksempel gjøres ved at scriptet henter alle bilannonser, sortert etter "nyeste". (Mulig man også må logge hvilke finn-koder man har "scannet" allerede, så det ikke kjører prosessoren på 100% ved å kjøre gjennom alle bilannonser som ligger ute på loop for alltid). Step gjennom én og én annonse, og på hver av dem gjør du:
1) Hent ut modell(merke, modell, årsmodell)
2) Lag et søk ut ifra de opplysningene
3) Mat søke-urlen fra steg 2) inn i funksjonen din
4) Mat resultatet fra 3) inn i avvik-detektoren
5) Gi output til brukeren om eventuelt avvik
6) Logg at man har sjekket den aktuelle finnkoden/annonsen
7) Repeter med neste annonse fra Alle biler -> nyeste til alle annonser er sjekket.

Jeg kan ikke tenke meg at dette er den mest effektive måten å gjøre noe sånt på, men det skal virke... Jeg har ikke tid til å skrive dette som ekte kode, bare denne supergenerelle pseudo-koden ^^, ihvertfall før helga...



edit: Jeg har forresten ikke sjekket om finn blokkerer deg om du sender for mange requests i et gitt tidsrom... Kan jo hende du blir stoppet for scraping eller forsøkt DoS for alt jeg vet.
Sist endret av UnfairGamer; 13. desember 2018 kl. 21:48.