Etikettarkiv: bloggz

Bloggsök API version 2

Efter en hel del strulandes och ett fallskärmshopp senare så är nu API:et för bloggsökningen uppe igen och snurrar med en hel del nya härligheter.

För att sammanfatta:

  • Booleansökningar med AND samt OR.
  • Cache-Control sätts nu i HTTP-headers till en timme.
  • Möjlighet att enbart visa antalet träffar vilket minskar belastningen i onödan.
  • XML kommer att skrotas till förmån för enbart JSON.
  • Bloggtrend API där du kan söka på godtyckligt ord och få upp antalet träffar grupperat på datum. Sträcker sig lite olika långt tillbaka i tiden beroende på antalet träffar.
  • Kommer snart: Blogglänk-API för att skapa fina länkgrafer eller om du vill se hur många, eller vilka bloggar som länkar till en viss blogg eller tidningsartikel. Detta API använder exmepelvis BloggVärde för att försöka räkna ut hur populär en blogg är.
Beskrivning av de nya funktionerna enligt följande:

Bloggtrend API

Anropas på följande sätt:

http://api.bloggz.se/api.json?q=midsommar&type=trends

Vilket då returnerar en JSON som ser ut ungefär så här (gissa vilken dag midsommarafton inträffade 2011)

Enbart antalet träffar

Om du enbart vill returnera antalet träffar för en sökfråga utan annat innehåll så slänger du på &type=hits på följande sätt:

http://api.bloggz.se/api.json?q=smsl%E5n&type=hits

Se även mitt blogginlägg om Bloggsök API version 1.

Bloggsök API

Se även Bloggsök API version 2.

En av de första webbtjänsterna jag byggde för egen räkning var Bloggz.se som är en bloggsökmotor som söker i svenska bloggar. I dagsläget så finns det runt 400 000 indexerade bloggar i dess databas. Oklart hur många av dessa som är aktiva men bloggar som ger felmeddelanden såsom 404 rensas fortlöpande bort. Även viss spam-filtrering sker. Nya bloggar upptäcks automatiskt med hjälp av ping.bloggnytt.se, en crawler samt BloggPing.

Antalet blogginlägg är i dagsläget 54 483 829 och innehåller inlägg från 2007 och framåt.

API:et nås på följande URL:

http://api.bloggz.se/api.json eller api.xml för XML-versionen. Det är fritt fram att använda API:et för icke kommersiellt bruk.

Möjliga parametrar är:

  • ?q=sökfrågan
  • Pagination med &p=1 upp till 100
  • Sortering efter datum eller relevans med hjälp av &sort=rel, standardsortering är datum. Nyast först

Skärmdump från JSON-data:


Om du använder API:et, så sätt gärna en User-Agent header med kontaktuppgifter såsom E-post.

Uppdatering: Håller på att uppdatera API:et så det kommer att fungera dåligt eller inte alls under 2-3 dgr.

Uppdatering 2: Nu fungerar det igen.

Bloggsök flyttad till molnet

Sakta men säkert så flyttar jag mina bloggprojekt till molnet och Amazon EC2 + RDS. Det rör sig först och främst om bloggsökmotorn Bloggz.se där jag även kommer att öppna upp för ett bloggsök-API med JSON + XML. Fritt för privatpersoner att använda och en mindre summa för kommersiella projekt.

Bloggz var mitt första projekt som skapades år 2007 och har sedan dess indexerat den svenska bloggosfären. Tjänster som använder sig av bloggdata är exempelvis BloggVärde, BloggNytt och BloggBilder.

Jag håller även på att komma ikapp antalet bloggar som är indexerade:

Många kontaktar mig

När man som jag har runt 30-40 miljoner webbsidor publicerade med information såsom gator, domäner, mikrobloggar, bloggar och myndighetstransaktioner så kontaktas jag av en hel del människor som av en eller annan anledning fått sitt företagsnamn, namn eller delar av sitt namn publicerat på någon av sidorna, eller hamnar på en av mina webbsidor av misstag genom Google.

Kontaktvägen kan vara olika och oftast sker det genom de kontaktsidor som jag upprättat men ibland så ringer det även folk, skickar E-post eller snigelpost. Inställningen brukar vara olika, ibland hotfull och aggresiv men för det mesta så är den vänlig. Jag försöker så klart i största mån informera om varför uppgifterna är publicerade och radera dem.

Annat intressant att läsa om detta ämne finnes hos Reco-bloggen, och att gömma sig bakom en fasad är dock det sista jag vill göra.

Skapa din egen bloggsökmotor

Ett av mina första webbprojekt var den svenska bloggsökmotorn Bloggz.se som jag skapade i början av 2007. Med hjälp av den erfarenheten och kunskapen så tänkte nu gå igenom hur du som utvecklare lätt och enkelt kan skapa din egen bloggsökmotor med hjälp av php- eller python-kunskap.

Steg 1 – Hitta bloggar

Först och främst så måste vi ju hitta URL:er till bloggar och sedan måste vi lista ut om de bloggar om svenska eller ej. Så mitt tips är att börja genom att ladda hem och parsa följande fil från Google (var 10’de minut exempelvis):

http://blogsearch.google.com/changes.xml

Denna fil är på ca 12 MB och innehåller ca 71 000 bloggar, varje rad ser ut på ungefär följande sätt:

<weblog name=”Filmklipp hos Filmpasset.se” url=”http://filmpasset.se/” rssUrl=”” when=”2″ sourceIp=”72.233.56.145″ />

Steg 2 – Parsa bloggar

Vi har nu gigantiska listor med bloggar och det vi måste göra nu är att besöka dessa bloggar och hämta ut relevant information och här finns det två viktiga komponenter:

  • Hitta RSS-feeden på bloggen
  • Parsa RSS-feeden på bloggen

Det kan låta trivialt men det finns miljoner olika kombinationer på ovan två komponenter. Jag kan rekommendera Feedfinder samt Feedparser (från svn).

Det du gör nu är att du skapar en databas med URL:er till alla bloggar och fyller sedan på med de RSS-url’er som du hittar med hjälp av Feedfinder, detta arbete kan trådas med fördel. Se på Pythons queue

Steg 3 – Klassificera språk

Det vanligaste sättet att klassificera språk är ngram (bi/tri-gram) och jag använder mig av följande implementation: ngram.py som är skriven av Thomas Mangin. Detta måste så klart göras efter du har hämtat hem de inlägg som hittas på bloggen. Glöm inte att spara undan HTTP-headers såsom last-modified och etag som gör att du inte behöver besöka bloggen i onödan om den ej är uppdaterad.

Steg 4 – Gör allt sökbart

Nu när du har inlägg och bloggar i en databas så behöver du bara göra allt detta sökbart, snabbt. Och då kan jag rekommendera Sphinxsearch där du gör en main och ett delta-index som uppdateras kanske en gång i veckan vs. varje timme beroende på hur mycket information som ska indexeras.

Och nu behöver du bara göra ett trevligt webb-gui till databasen och Sphinx-indexet.

Överkurs

Det du kan tänka på också när du parsar bloggar är att spara undan länkar som du hittar i inläggen för att sedan använda denna information för att vikta sökresultet samt hitta fler bloggar att lägga till. Jag sparar exempelvis undan denna information och använder den på bl.a BloggBilder.se och BloggVärde.se (och snart kanske BloggAnalys.se)

Kuriosa

Utifrån sourceIp i changes.xml så pingar dessa Google flest gånger:

13674 66.197.201.21
12006 59.40.198.153
4875 72.233.56.144
4807 72.233.56.156
4719 72.233.56.145
2070 66.207.161.106
2056 221.186.141.201
1785 202.108.35.60
906 124.42.34.18
577 74.125.44.136
544 69.59.185.172
533 62.129.193.27
532 69.10.46.130
491 91.121.157.178
360 221.186.141.206
354 219.239.93.69
325 208.110.66.194
281 89.161.143.129
267 82.96.94.35
259 219.94.203.126
  13674 66.197.201.21 colo4.socialknowledge.net.

  12006 59.40.198.153 153.198.40.59.broad.sz.gd.dynamic.163data.com.cn.

   4875 72.233.56.144 wordpress.org

   4807 72.233.56.156 wordpress.org

   4719 72.233.56.145 wordpress.org

   2070 66.207.161.106 HostKitty Internet Services

   2056 221.186.141.201 idcgw.cyberz.co.jp.

   1785 202.108.35.60 ChinaUnicom

Siffror: BloggPing, BloggVärde, Bloggy, Bloggz

Jag tänkte dela med mig av några siffror från mina sajter:

  • TweetValue.com har värderat 47 565 Twitter-konton
  • Bloggy har levererat 398 408 meddelanden
  • BlogBackupr.com har 5 926 användare
  • Bloggsökmotorn Bloggz.se har information om 29 392 744 länkar mellan bloggar och indexerade 3 895 950 inlägg i Febuari och 3 195 633 inlägg i Januari
  • BloggVärde.se har värderat 97 909  svenska bloggar
  • 1200 svenska bloggare använder dagligen BloggPing.com
  • Jag har 8 servrar (inklusive virtuella) utspridda över fyra geografiskt olika platser

Nya projekt, buggtester, CDN, PDFind

Buggtesterna på Bloggy fortgår och jag fixar runt 5-6 buggar dagligen vilket bör innebära att jag öppnar upp för en publik beta kanske redan nästa vecka. Vill du ha en invite? Gå till bloggy.se och ange din E-post så lovar jag att skicka ut en invite när det är dags.

**

Den blogginformation/data jag besitter verkar vara intressant och diverse sammarbeten gällande min bloggsökmotor Bloggz har inletts.

**

DomainTool.se vilket är en domän informations-tjänst som jag utvecklade för ca ett halvår sedan börjar få mer besökare och är uppe i en tredjedel av antalet besök som Download11 genererar. Så därför har jag börjat att utveckla en storebror som troligtvis inte tar för mycket tid att utveckla.

**

Då mina tjänster kräver mer och mer kapacitet så har jag börjat att snegla på diverse CDN (Content delivery networks) och SimpleCDN.com verkar trevligt. Läste just även att Amazon kommer att släppa en CDN-tjänst. Tillsvidare så har jag dragit igång ett gäng servrar hemma som får göra krävande beräkningar.

**

PDFind.com blir trevligare och trevligare för var dag och snart kanske värdig att kallas BETA.

Test av TradeDoubler

Pratade med en trevlig säljare på TradeDoubler idag och fick lite hjälp hur man använder deras annonseringsverktyg för att lägga upp nya annonser och han hjälpte mig även att fixa lite buggar i bloggsökmotorn. Måste erkänna att utan hans hjälp så lyckades jag inte skapa annonser för att lägga upp på sidor (ett tecken på att jag börjar bli gammal?).

Får se om denna annonsering kan inbringa mer än bara kaffepengar.