Opensearch - recuperation de la reponse pour application en c#

romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 - 21 avril 2007 à 15:55
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 - 22 avril 2007 à 20:33
Bonjour,
voila je désire m'entrainer avec WPF et réaliser une application qui récuperait par exemple la liste des réponses suite à une recherche depuis une application en C# sur dailymotion.com

le site utilise opensearch apparemment et relevance

est ce qu'il existe un moyen d'effectuer une recherche et récupérer directement une réponse au format xml  ou rss  (depuis son application C# et non depuis IE)?

 (afin d'extraire simplement chaque information) parce que sans cela il faudrait que j'extrais directement dans la source de la page ce qui n'est pas forcément "trés bon" je trouve

4 réponses

romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
21 avril 2007 à 17:35
bon
j'ai peut etre trouver
mais il me semblait que l'on pouvait definir le format de la reponse (atom,rss,...) suite a une recherche en utilisant opensearch
quelquechose du style

"http://www.google.com/search?q= {searchTerms}&rls=com.microsoft:{atom}&ie={inputEncoding}&oe={outputEncoding}&startIndex={startIndex?}&startPage={startPage}& format=rss "

ex (textbox1 contient les termes à rechercher):

String sSearchTearms =
"http://www.google.com/search?q= {searchTerms}&rls=com.microsoft:{atom}&ie={inputEncoding}&oe={outputEncoding}&startIndex={startIndex?}&startPage={startPage}&format=rss";sSearchTearms = sSearchTearms.Replace(

"{searchTerms}", textBox1.Text);

string sResult = GetSearchResponse(sSearchTearms);

...

private
string GetSearchResponse(
string sSearchUrl){

string sResult =
string.Empty;

try{

WebRequest request =
WebRequest.Create(FilmsListUrl);

using (
WebResponse oWebResponse = request.GetResponse()){

using (
Stream oStream = oWebResponse.GetResponseStream()){

using (
StreamReader oStreamReader =
new
StreamReader(oStream)){

sResult = oStreamReader.ReadToEnd();

}

}

}

}

catch (
Exception e){

throw exception;}

return sResult;}
0
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
21 avril 2007 à 17:38
woops copier/coller foireux :p

String sSearchTerms =
"http://www.google.com/search?q={searchTerms}&rls=com.microsoft:{atom}&ie={inputEncoding}&oe={outputEncoding}&startIndex={startIndex?}&startPage={startPage}&format=rss";sSearchTerms = sSearchTerms.Replace(

"{searchTerms}", textBox1.Text);

string sResult = GetSearchResponse(sSearchTerms);

...

private

string GetSearchResponse(
string sSearchUrl){

string sResult =
string.Empty;

try{

WebRequest oWebRequest =
WebRequest.Create(sSearchUrl);

using (
WebResponse oWebResponse = oWebRequest.GetResponse()){

using (
Stream oStream = oWebResponse.GetResponseStream()){

using (
StreamReader oStreamReader =
new
StreamReader(oStream)){

sResult = oStreamReader.ReadToEnd();

}

}

}

}

catch (
Exception e){

throw exception;}

return sResult;}
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
21 avril 2007 à 17:53
Salut,

Ceci dit au passage ne fait pas confiance à la saisie de l'utilisateur, un petit coup d'UrlEncode me semble nécessaire sur le remplacement de "{searchTerms}".

/*
coq
MVP Visual C#
CoqBlog
*/
0
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
22 avril 2007 à 20:33
erf je ne connaissais pas UrlEncode
merci pour le conseil :)

bon sinon il va falloir que je consulte un peu plus OpenSearch si je veux vraiment pouvoir en tirer parti parce que j'ai remarqué que ce que je récupère au format rss ne correspond pas exactement à la page qui est affiché lors d'une recherche

+
0
Rejoignez-nous