PYTHON Concaténation URL entraine erreur 400 - Python - Programmation
Marsh Posté le 20-02-2014 à 14:59:57
En admettant que ton code soit bien indenté, tu te rends compte du nombre de fois que tu ouvres ton fichier NOMS2.txt ?
Tu te rends compte du nombre de requêtes que tu fais sur le même serveur en quelques millisecondes?
Vérifies aussi les valeurs de nom et nom2 avec des print.
Marsh Posté le 20-02-2014 à 17:46:06
Argggghhhh
Oui, j'ai mis une attente en bout de boucle
J'ai fait des print,
J'ai demandé à m'afficher la valeur ORD de chaque CHR de nom et nom2 pour voir si aucun CHR bizarre n'était caché
Et ça plante
Marsh Posté le 22-02-2014 à 21:39:47
Normal, tu envoies "http://www.bing.com/search?q=foo bar", c'est pas valide, tu peux pas avoir un espace dans une URL.
1. les valeurs doivent être urlencodées pour remplacer les caractères "spéciaux" par des valeurs échappées (genre espace par %20). urllib.urlencode fait ça
2. `<>` c'est déprécié, utiliser `!=`
3. le step 1 est la valeur par défaut de range
4. d'ailleurs elles servent à quoi tes itérations sur des range là? Pourquoi tu itères pas directement sur les fichiers?
5. utiliser `with` avec une ouverture de fichier pour s'assurer de bien le fermer
Citation : ADRESSE = "%s%s %s" % ("http://www.bing.com/search?q=","PIF","HERCULE" ) |
Chez moi ça marche pas
>>> urllib2.urlopen('http://www.bing.com/search?q=PIF HERCULE') |
Code :
|
Notes que scraper les pages de cette manière me semble un bon moyen de se faire ipban rapidement. Tu ferais mieux d'utiliser les API adéquates.
Marsh Posté le 22-02-2014 à 23:23:30
Merci.
Je ne compte pas me faire bannir, c'est un code vite monté mais je ne veux pas faire 1 000 000 de requetes, j'en aurais pour toute une vie :)
Le petit code ci-dessus est-il fonctionnel ?
Merci pour les tuyaux en tout cas
Marsh Posté le 23-02-2014 à 08:07:47
Il n'est pas testé. Mais il ne devrait pas être loin de ce que j'ai compris du code d'origine: pour chaque paire (mot1, mot2) possible où mot1 != mot2, faire une recherche bing
Marsh Posté le 19-02-2014 à 17:02:30
Le but, rapido:
j'ai deux fichiers avec des noms et je les mets dans un string http pour faire une requete, sur google,bing, yahoo ou autre mais ça plante invariablement au même endroit
Traceback (most recent call last):
File "test.py", line 51, in <module> (EN FAIT LA LIGNE 25 DE MON PROJET CI DESSUS)
response = urllib2.urlopen(req)
File "C:\Python\lib\urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python\lib\urllib2.py", line 410, in open
response = meth(req, response)
File "C:\Python\lib\urllib2.py", line 523, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python\lib\urllib2.py", line 448, in error
return self._call_chain(*args)
File "C:\Python\lib\urllib2.py", line 382, in _call_chain
result = func(*args)
File "C:\Python\lib\urllib2.py", line 531, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 400: Bad Request
PIRE:
Au lieu de
j'ai mis
et ça marche...
Alors si quelqu'un pouvait me conseiller... (Fred?)
parce que là je m'arrache les cheveux