2009-02-07 8 views
1

Est-ce que quelqu'un sait s'il y a un paramètre disponible pour la recherche programmatique sur yahoo permettant de restreindre les résultats afin que seuls les liens vers des fichiers de type spécifique soient retournés (comme le PDF par exemple)? Il est possible de faire cela dans l'interface graphique, mais comment y arriver à travers l'API? J'apprécierais beaucoup un exemple de code en Python, mais toutes les autres solutions pourraient aussi être utiles.comment rechercher un type de fichier spécifique avec yahoo search API?

Répondre

0

Merci. je me suis trouvé que quelque chose comme cela fonctionne OK (type de fichier est le premier argument, et la requête est la deuxième):

format = sys.argv [1]

requête = "" .join (sys. argv [2:])

srch = create_search ("Web", app_id, requête = requête, format = Format)

0

Voici ce que je fais pour ce genre de chose. Il expose plus de paramètres afin que vous puissiez l'ajuster à vos besoins. Cela devrait imprimer les dix premières URLs PDF de la requête "CV" [le mien n'en fait pas partie)]. Vous pouvez télécharger ces URL comme vous le souhaitez.

Le dictionnaire json qui est renvoyé de la requête est un peu grossier, mais cela devrait vous aider à démarrer. Sachez qu'en code réel, vous devrez vérifier si certaines des clés du dictionnaire existent. Quand il n'y a aucun résultat, ce code lèvera probablement une exception.

Le lien que Tiago a fourni est bon pour savoir quelles valeurs sont supportées pour le paramètre "type".

from yos.crawl import rest 
APPID="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
base_url = "http://boss.yahooapis.com/ysearch/%s/v%d/%s?start=%d&count=%d&type=%s" + "&appid=" + APPID 
querystr="resume" 
start=0 
count=10 
type="pdf" 
search_url = base_url % ("web", 1, querystr, start, count, type) 
json_result = rest.load_json(search_url) 
for url in [recs['url'] for recs in json_result['ysearchresponse']['resultset_web']]: 
    print url