Toon posts:

Tweakers Api

Pagina: 1
Acties:
  • 2.978 views

  • marnixbouhuis
  • Registratie: Juli 2016
  • Laatst online: 01-02 21:41
EDIT:
Tweakers had mij gevraagd om de api neer te halen, dus heb ik dat gedaan.
Het was een leuk project om aan te werken en ik heb er veel lol in gehad.
De cache is verwijderd en de dns instellingen van mijn domein zijn aangepast. Het kan nog even duren voordat tweakers.marnixbouhuis.nl helemaal niet meer bereikbaar is.

Met vriendelijke groet,
Marnix



Hey allemaal,

Ik heb me de laatste 2 dagen bezig gehouden met het ontwikkelen van een tweakers scraper api.
De api is nog in ontwikkeling dus er kunnen nog dingen veranderen :) .
Hij bied alleen maar data aan die beschikbaar is zonder dat je een account hebt (dus hij kan niet worden gebruikt om automatisch op vraag en aanbod dingen te reageren bijvoorbeeld).

Je hebt een api key nodig om de api te kunnen gebruiken. Aan een key zit een limiet vast van 100 requests per dag. Dit limit heb ik er in gezet omdat dingen hosten/ontwikkelen ook gewoon tijd en geld kost.
Je kan een key krijgen door een pm naar mij te sturen met daar in de vraag naar een key. Vervolgens zal ik je zo snel mogelijk de key sturen.

EDIT: Het is nu nodig om een gelig tweakers abonnement te hebben op het account waar je de api key mee opvraagt. Als je abonnement verloopt heb je een paar dagen voordat de api key vervalt. Dit was nodig omdat tweakers zijn inkomsten krijgt d.m.v. advertenties en je met een tweakers abbonement geen advertenties meer ziet.

De volgende dingen kan je nu opvragen met de api:
  • Crew data (nog geen artikelen van een crew lid. Hier wordt nog aan gewerkt.)
  • Basic user data
  • Nieuws van een bepaalde datum
  • Nieuws berichten
Het is misschien niet veel, maar ik heb me eerst gefocust op het neerzetten van een goede basis en nu ben ik een voor een de verschillende dingen aan het implementeren. :)


Dit is hoe je de api tot nu toe moet gebruiken:

Opvragen van crew informatie
URL: https://tweakers.marnixbouhuis.nl/crew/IDHIER/?apikey=x
IDHIER is hier de id van het crew lid. Deze kan je vinden in de url van de crew pagina, bijvoorbeeld voor de url 'https://tweakers.net/crew/296/' is het id 296. De 'x' vervang je door je api key.
Response
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{  
   "status":200,
   "message":"",
   "data":{  
      "name":"Naam hier",
      "image":"Url naar afbeelding hier of als er geen afbeelding is is deze waarde null",
      "numberOfArticles":"1234",
      "bio":[  
         "Oprichter en ontwerper\r",
         "Storage en domotica\r",
         "Heeft reviews geschreven van 20 ssd's"
      ],
      "userProfile":"hier staat het gebruikers id van het crew lid"
   }
}



Opvragen van gebruikers informatie
URL: https://tweakers.marnixbouhuis.nl/users/IDHIER/?apikey=x
IDHIER is hier de id van de gebruiker. Deze kan je vinden in de url van de gallery pagina, bijvoorbeeld voor de url 'https://tweakers.net/gallery/123456/' is het id 123456. De 'x' vervang je door je api key.
Response
Dit is een response voor de gebruiker met het id 1 (AKA Femme Taken)
JavaScript:
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
{  
   "status":200,
   "message":"",
   "data":{  
      "name":"Femme",
      "image":"https://ic.tweakimg.net/usericons/1/femme.png",
      "registeredAt":"11 juni 1999",
      "lastModification":"29 november 2016.",
      "karma":"408K",
      "personalData":{  
         "Naam":"Femme Taken",
         "Geboortedatum":"17 augustus 1979",
         "Geslacht":"Man",
         "Woonplaats":"Bronckhorst",
         "Beroep":"Ontwerper & product-owner",
         "Opleiding":"ex-Interaction Design",
         "Homepage":"http://grootokhorst.nl"
      },
      "socialMediaLinks":[  
         "https://www.linkedin.com/in/femme",
         "https://twitter.com/femmetaken",
         "http://people.icq.com/people/14484752"
      ]
   }
}

image kan een url bevatten naar de afbeelding of is null.
De personal data array is een array opgebouwd uit alle data uit de Persoonlijke gegevens tabel op het profiel (zonder de link naar het forum).
De social media links array bevat links naar de gene zijn social media accounts, deze array kan ook leeg zijn.


Opvragen van nieuws van een datum
URL: https://tweakers.marnixbouhuis.nl/news/date/DATUM/?apikey=x
DATUM is de datum van de nieuws berichten (als je 1 februari 2017 wil dat is de datum het volgende: 20170201). De 'x' vervang je door je api key.
Response
Dit is een response voor de datum 20170205 (5 februari 2017)
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
{  
   "status":200,
   "message":"",
   "data":{  
      "posts":[  
         "120911",
         "120907",
         "120913",
         "120905",
         "120909"
      ]
   }
}

De post array bevat de id's van de nieuwsberichten van die dag.


[b]Opvragen van een nieuwsbericht/b]
URL: https://tweakers.marnixbouhuis.nl/news/id/BERICHT/?apikey=x
BERICHT is de id van het nieuwsbericht, deze kan je krijgen door het nieuws op te vragen voor een dag of je kan de id ook verkrijgen door naar de url te kijken vaan een nieuwsbericht (voor de url nieuws: Rock Band VR komt op 23 maart uit voor Oculus Rift is het nieuwsbericht id 120959). De 'x' vervang je door je api key.
Response
Dit is een response voor het nieuwsbericht met een id van 120959
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{  
   "status":200,
   "message":"",
   "data":{  
      "title":"Rock Band VR komt op 23 maart uit voor Oculus Rift",
      "author":"296",
      "date":"2017-02-06T21:17:56+01:00",
      "related":[  
         "112505",
         "110673",
         "106642"
      ],
      "content":"<p class=\"lead\">Eigenaren van een Oculus Rift kunnen vanaf 23 maart Rock Band VR spelen, en inmiddels is het spel al te preorderen in combinatie met een gitaarcontroller. De virtual reality-game had aanvankelijk al vorig jaar uit moeten komen.</p><p>Dat heeft uitgever Harmonix <a title=\"twitter.com - Rock Band op Twitter\" href=\"https://twitter.com/RockBand/status/828649484447997952\" rel=\"external\">bekendgemaakt</a> via Twitter. Zelf verwijst het bedrijf naar Amazon voor het plaatsen van een bestelling, waarbij de game in combinatie met een gitaarcontroller kan worden aangeschaft. Overigens is het onduidelijk of de vr-versie van het gitaarspel op 23 maart ook direct&#xA0;in Nederland en Belgi&#xEB; wordt uitgebracht.</p><p>Met de gitaarcontroller kan Rock Band VR worden gespeeld door deze op de pc aan te sluiten en de Oculus Rift op het hoofd te zetten. De bedoeling is dat er met de bril op naar het publiek kan worden gekeken terwijl er op de gitaar wordt gespeeld. Er is de keuze tussen een Xbox One-versie en een PlayStation 4-versie met betrekking tot de gitaarcontroller; het is namelijk mogelijk om het instrument in combinatie met Rock Band 4 te spelen op een van de twee consoles.</p><p>De vr-versie van Rock Band werd in december 2015 al <a title=\"Oculus onthult virtualrealityversie van Rock Band\" href=\"https://tweakers.net/nieuws/106642/oculus-onthult-virtualrealityversie-van-rock-band.html\" rel=\"external\">aangekondigd</a>. Veel details waren er destijds niet beschikbaar, maar toen werd al wel gesproken over een release in maart 2016. De game komt uiteindelijk dus ongeveer een jaar later uit dan aanvankelijk gepland.</p><p><img class=\"alignCenter\" src=\"https://ic.tweakimg.net/ext/i/imagenormal/2001254503.jpeg\" alt=\"Oculus draadloos\" width=\"620\" height=\"346\"></p>"
   }
}

Related bevat een array met nieuwsbericht id's die gerelateerd zijn aan dit nieuwsbericht.
Content bevat de html van het bericht.


Als een request goed behandeld is stuurt die altijd een 200 status code.
Als er iets mis gaat bevat 'message' altijd verdere uitleg over het probleem.
Als een request niet goed is dan stuurt die altijd een 400 status code.
Als je door je dagelijkse aantal requests heen bent dan stuurt die een 429 status code.
Als de api key niet goed is, stuurt die een 401 status code.
Als er intern wat fout gegaan is, dan stuurt die een 500 status code.

Het status variable en de http status code zijn ook altijd het zelfde.

Ik ben van plan om uiteindelijk ook de rest van de tweakers onderdelen te gaan implementeren.
Suggesties en bug reports zijn altijd welkom :) .

- Marnix

[Voor 4% gewijzigd door marnixbouhuis op 07-02-2017 14:56. Reden: Ik moest helaas de api neerhalen van tweakers.]


  • Tk55
  • Registratie: April 2009
  • Niet online
Cool project, alleen weet ik niet of Tweakers dit wel oké vindt.

Verder, waarom schrijf je niet een scraping library voor je favoriete taal, zodat men niet afhankelijk hoeft te zijn van jouw server, maar slechts die van Tweakers zelf?

  • ShitHappens
  • Registratie: Juli 2008
  • Laatst online: 16:57
Herstel: Je bent dus geen Tweakers API aan het maken, maar een Tweakers scraper API ;) Klein detail/verschil

  • marnixbouhuis
  • Registratie: Juli 2016
  • Laatst online: 01-02 21:41
Tk55 schreef op maandag 6 februari 2017 @ 22:31:
Cool project, alleen weet ik niet of Tweakers dit wel oké vindt.

Verder, waarom schrijf je niet een scraping library voor je favoriete taal, zodat men niet afhankelijk hoeft te zijn van jouw server, maar slechts die van Tweakers zelf?
Ik ben van plan om uiteindelijk libraries te gaan maken voor php en javascript. Ik heb er voor gekozen om het nu zo te doen omdat je dan met elke programmeer taal (die uit zich zelf json of met een library json kan parsen) er gebruik van kunt maken. Ook pas ik caching toe om de druk op Tweakers te verminderen.

  • marnixbouhuis
  • Registratie: Juli 2016
  • Laatst online: 01-02 21:41
ShitHappens schreef op maandag 6 februari 2017 @ 22:32:
Herstel: Je bent dus geen Tweakers API aan het maken, maar een Tweakers scraper API ;) Klein detail/verschil
Inderdaad :)

  • Señor Sjon
  • Registratie: Juli 2003
  • Laatst online: 16:09

Señor Sjon

Moderator General Chat / Wonen & Mobiliteit

Magnificent bastard

Aangezien dit om tweakers zelf gaat, duwtje naar Lieve Adjes.

This is my signature. There are many like it, but this one is mine.


  • _David_
  • Registratie: Februari 2011
  • Laatst online: 07:42

_David_

FP ProMod

llama llama duck

Heb je contact opgenomen met Tweakers hierover? Wat ik vraag me af hoe blij ze hier mee zijn...

I thought fail2ban would keep the script kiddies out but somehow you still seem to be able to login.


  • marnixbouhuis
  • Registratie: Juli 2016
  • Laatst online: 01-02 21:41
_David_ schreef op dinsdag 7 februari 2017 @ 00:26:
Heb je contact opgenomen met Tweakers hierover? Wat ik vraag me af hoe blij ze hier mee zijn...
Het is publieke data, dus iedereen kan het zien. De api bied alleen maar een mogelijkheid om de data makkelijk op te vragen.

  • Puc van S.
  • Registratie: Maart 2002
  • Laatst online: 17:08
publieke data betekend niet dat je er zelf alles mee mag, het valt dan ook dan nog steeds onder het auteursrecht.

[http://www.okbreijnen.nl] [Overwatch] [Cennahysh]


  • marnixbouhuis
  • Registratie: Juli 2016
  • Laatst online: 01-02 21:41
Puc van S. schreef op dinsdag 7 februari 2017 @ 07:49:
publieke data betekend niet dat je er zelf alles mee mag, het valt dan ook dan nog steeds onder het auteursrecht.
Dat is inderdaad waar. Als tweakers dit niet wil, dan stop ik er gewoon mee, het blijft ten slotte wel hun data.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

marnixbouhuis schreef op dinsdag 7 februari 2017 @ 07:28:
Het is publieke data, dus iedereen kan het zien. De api bied alleen maar een mogelijkheid om de data makkelijk op te vragen.
Dit zijn het soort projecten waar het heel moeilijk van is een eenduidige mening te hebben. Het is enerzijds wel leuk en iets waar wij zelf sowieso ook geen tijd voor hebben, maar anderzijds een manier van onze content aanbieden zonder dat wij de bijbehorende inkomsten hebben.

Sowieso negeer je onze robots.txt en dat is gewoon niet goed. Dat geldt met name voor de profielen; hoewel we die openbaar aanbieden willen we niet dat daar databases van aangelegd (kunnen) worden. Vandaar dat we daar met de robots.txt ook van aangeven dat die off limits zijn, negeer je dat, dan is de kans groot dat je geblokkeerd wordt in onze firewall.
Puc van S. schreef op dinsdag 7 februari 2017 @ 07:49:
publieke data betekend niet dat je er zelf alles mee mag, het valt dan ook dan nog steeds onder het auteursrecht.
Dat auteursrecht zit in dit specifieke rijtje natuurlijk vooral op de (inhoud van de) nieuwsberichten. Degene die e.e.a. herpubliceert zal op zijn minst een bronvermelding moeten geven en dan is het inderdaad nog steeds niet de bedoeling om structureel volledige teksten aan te bieden.
De andere elementen zullen eerder onder het databaserecht vallen (zoals productspecificaties en -prijzen). Waarvoor natuurlijk ook geldt dat wij daar zekere rechten op hebben.

Voor particulier, prive gebruik is dat allemaal natuurlijk niet zo relevant, maar zodra er niet-particuliere of publieke initiatieven omheen ontstaan wordt het allemaal wat ingewikkelder.

  • marnixbouhuis
  • Registratie: Juli 2016
  • Laatst online: 01-02 21:41
ACM schreef op dinsdag 7 februari 2017 @ 08:12:
[...]

Dit zijn het soort projecten waar het heel moeilijk van is een eenduidige mening te hebben. Het is enerzijds wel leuk en iets waar wij zelf sowieso ook geen tijd voor hebben, maar anderzijds een manier van onze content aanbieden zonder dat wij de bijbehorende inkomsten hebben.

Sowieso negeer je onze robots.txt en dat is gewoon niet goed. Dat geldt met name voor de profielen; hoewel we die openbaar aanbieden willen we niet dat daar databases van aangelegd (kunnen) worden. Vandaar dat we daar met de robots.txt ook van aangeven dat die off limits zijn, negeer je dat, dan is de kans groot dat je geblokkeerd wordt in onze firewall.


[...]

Dat auteursrecht zit in dit specifieke rijtje natuurlijk vooral op de (inhoud van de) nieuwsberichten. Degene die e.e.a. herpubliceert zal op zijn minst een bronvermelding moeten geven en dan is het inderdaad nog steeds niet de bedoeling om structureel volledige teksten aan te bieden.
De andere elementen zullen eerder onder het databaserecht vallen (zoals productspecificaties en -prijzen). Waarvoor natuurlijk ook geldt dat wij daar zekere rechten op hebben.

Voor particulier, prive gebruik is dat allemaal natuurlijk niet zo relevant, maar zodra er niet-particuliere of publieke initiatieven omheen ontstaan wordt het allemaal wat ingewikkelder.
Ik had nog niet gedacht aan de robots.txt. Ik implementeer dit zo snel mogelijk. Ook is de api bedoeld voor particulier gebruik en ik heb een aantal checks lopen zodat je niet alle nieuwsberichten gestructureerd achter elkaar kan opvragen.
Ook wil ik bij elke response de orginele url meegeven en de naam van degene die het heeft gepost.

  • Richh
  • Registratie: Augustus 2009
  • Laatst online: 19:14
marnixbouhuis schreef op dinsdag 7 februari 2017 @ 08:52:
Ook is de api bedoeld voor particulier gebruik
Dat is wellicht vanzelfsprekend, maar dat betekent niet dat jij aan Tweakers kan garanderen dat het alleen aan particulieren wordt verstrekt.
Bovendien mist Tweakers inderdaad advertentieinkomsten :P

Ik kan me voorstellen dat Tweakers hier niet zo blij mee is. Zou het dan ook lekker voor jezelf houden :P

  • marnixbouhuis
  • Registratie: Juli 2016
  • Laatst online: 01-02 21:41
Richh schreef op dinsdag 7 februari 2017 @ 10:44:
[...]


Dat is wellicht vanzelfsprekend, maar dat betekent niet dat jij aan Tweakers kan garanderen dat het alleen aan particulieren wordt verstrekt.
Bovendien mist Tweakers inderdaad advertentieinkomsten :P

Ik kan me voorstellen dat Tweakers hier niet zo blij mee is. Zou het dan ook lekker voor jezelf houden :P
Ik zit er aan te denken om dit een feature te maken voor mensen die zijn geabonneerd zodat het advertentie probleem is opgelost.

  • marnixbouhuis
  • Registratie: Juli 2016
  • Laatst online: 01-02 21:41
UPDATE: Het dagelijkse limiet is nu verandert naar 100 requests per dag om het systematisch kopieëren van data van tweakers tegen te gaan. Ook is het nu nodig om een geldig tweakers abbonement te hebben om een api key te krijgen en je abbonement moet geldig blijven om de key geldig te houden.
Ik ga later vandaag een nieuwe update pushen met daarin een aantal nieuwe features met daarin een check dat er maar 1 key per ip kan worden gebruikt. Als er meer keys worden gebruikt op 1 ip, worden alle keys op dit ip geblokkeerd en zal ik contact op nemen met de eigenaren van deze keys.

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 20:36

AW_Bos

Liefhebber van nostalgie... 🕰️

Is een dashboard een idee voor de key-zaken? Straks wil ik een nieuwe key-aanvragen of mijn IP voor de check wijzigen, en lig jij lang en breed op Hawaii in de zon te bruinen, ver van je computer ;).

En zijn er ook plannen om forumtopics op te halen? Of is dat te veel werk?
Vroeger was er een mooie xml-API voor, maar die is er helaas niet meer.

offtopic:
Tijd om het verhalen-topic uit de HK te bundelen voor de HK-hebbende liefhebbers :+

[Voor 105% gewijzigd door AW_Bos op 07-02-2017 13:46]

☀️ Goedemorgen zonneschijn! ☀️
☀️Ja, je maakt me zo gelukkig, en door jou voel ik me fijn! ☀️


  • marnixbouhuis
  • Registratie: Juli 2016
  • Laatst online: 01-02 21:41
UPDATE: Tweakers heeft mij gevraagd om de api neer te halen, dus ben ik dit nu aan het doen.

  • marnixbouhuis
  • Registratie: Juli 2016
  • Laatst online: 01-02 21:41
UPDATE: De api is nu volledig neer gehaald. De cache is verwijderd en de dns instellingen van mijn domein zijn aangepast. Het kan nog even duren voordat tweakers.marnixbouhuis.nl helemaal niet meer bereikbaar is.

Het was alsnog een leuk projectje om aan te werken en ik heb er veel lol in gehad. Helaas had het een conflict met tweakers zelf en dat was niet mijn bedoeling.

Met vriendelijke groet,
Marnix

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Je ziet 't niet aankomen…

All my posts are provided as-is. They come with NO WARRANTY at all.


  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 20:36

AW_Bos

Liefhebber van nostalgie... 🕰️

Het leek een leuk idee, maar het had je een hoop werk bespaard om eerst met hen te overleggen. ;)
Dat is altijd de eerste stap die ik zelf zou doen als ik gebruik wil maken van de data van een andere site.

offtopic:
Anyway, dan pruttel ik zelf wel wat in elkaar voor het verhaal-topic :+

[Voor 23% gewijzigd door AW_Bos op 07-02-2017 15:00]

☀️ Goedemorgen zonneschijn! ☀️
☀️Ja, je maakt me zo gelukkig, en door jou voel ik me fijn! ☀️


  • zeef
  • Registratie: Januari 2000
  • Laatst online: 05-06 07:59
Uiteraard gaan we binnenkort wel een bakkie doen op Tweakers HQ. :)
Pagina: 1

Dit topic is gesloten.


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee