2011-07-23 4 views
5

Je veux concevoir ma propre application de moteur de recherche, où tous les résultats sont affichés à l'utilisateur sur une seule page (de Google/Bing etc.) contrairement à Google où il est affiché sur des pages différentes.Comment concevoir un moteur de recherche personnalisé?

Existe-t-il de telles API qui peuvent me fournir tous ces résultats?

PS. J'utilise C#, et compte tenu de l'interface IEnumerator pour cela?

+3

Quelle est la question ici? –

Répondre

0

Ce que vous pouvez faire est de récupérer les données de différentes API (bing/google etc), puis l'afficher à l'utilisateur dans un flux. Sinon, l'exploration des moteurs de recherche est totalement illégale.

Pour Google, vous pouvez aller à l'API Google Custom Search ou si vous avez des produits à la recherche puis API Google Shopping.

Pour Bing, il existe une API simple et directe.

0

vérifiez NUTCH. Est-ce ce que vous recherchez?

0

Bing a ouvert une api http://www.bing.com/developers

Google vous donne un api alors il prend immédiatement loin. http://code.google.com/apis/websearch/docs/

Le google api est déprécié et je pense qu'ils en ont un autre qui est encore plus limité. Il était une fois une API comparable à celle de Bing.

Pour le scénario exact que vous avez mentionné cependant, la meilleure chose à faire est d'analyser le nombre de résultats, puis continuer à parcourir les pages. Vous devez également bien gérer les erreurs car Google ment souvent sur le nombre de résultats qu'il contient.

1

Si vous souhaitez simplement proposer des résultats de recherche aux utilisateurs, les API fournies par les moteurs de recherche sont probablement la solution. Comme déjà mentionné il ya Bing's Live Search API (que je n'ai pas utilisé mais semble bien), et aussi Google's Web Search API. En outre, il y a Yahoo BOSS que j'ai trouvé très facile à utiliser. Cependant, il semble que BOSS soit maintenant une API payante - donc en fonction de votre budget/intention, cela pourrait ne pas convenir.

L'API de recherche Web de Google est maintenant obsolète, mais devrait fonctionner pour un petit nombre de requêtes - c'est la plate-forme sur laquelle sont construits les outils comme this number of results counter. Il a été remplacé par le Google Custom Search API qui, selon vos besoins, peut ne pas fonctionner pour vous. Je ne l'ai pas utilisé, mais il semble bien, et est gratuit pour un petit nombre de requêtes. Le problème avec l'exploration et l'analyse des pages de recherche est que les moteurs de recherche modifient régulièrement le code html sous-jacent des pages de résultats de recherche. Ainsi, toute approche de grattage d'écran sera plutôt fragile. De plus, le terms of service de la plupart des moteurs de recherche commerciaux interdit l'accès automatisé - si vous continuez de toute façon, ils peuvent bloquer votre robot d'exploration. Ces deux problèmes sont probablement la raison pour laquelle les API d'analyse tierces géniales n'existent pas vraiment.

0

Je travaille dans le même projet. Generate sitemap

private void SubmitSitemap(string PortalName) 
    { 
     //PING SEARCH ENGINES TO LET THEM KNOW WE UPDATED OUR SITEMAP 

     //resubmit to google 

     System.Net.WebRequest reqGoogle = System.Net.WebRequest.Create("http://www.google.com/webmasters/tools/ping?sitemap=" + HttpUtility.UrlEncode("http://your path'" + PortalName + "'/sitemap.xml")); 
     reqGoogle.GetResponse(); 

     //resubmit to ask 

     System.Net.WebRequest reqAsk = System.Net.WebRequest.Create("http://submissions.ask.com/ping?sitemap=" + HttpUtility.UrlEncode("http://your path + "'/sitemap.xml")); 
     reqAsk.GetResponse(); 

     //resubmit to yahoo 

     System.Net.WebRequest reqYahoo = System.Net.WebRequest.Create("http://search.yahooapis.com/SiteExplorerService/V1/updateNotification?appid=YahooDemo&url=" + HttpUtility.UrlEncode("http://yourpath/sitemap.xml")); 
     reqYahoo.GetResponse(); 

     //resubmit to bing 

     System.Net.WebRequest reqBing = System.Net.WebRequest.Create("http://www.bing.com/webmaster/ping.aspx?siteMap=" + HttpUtility.UrlEncode("http://yourpath + "'/sitemap.xml")); 
     reqBing.GetResponse(); 

    } 


génèrera un fichier robots.txt et le placer dans la racine de votre nom directory.Friendly et d'autres questions sont aussi pour cette imp fin.

Questions connexes