J'ai une liste d'URL (1000+) qui ont été stockés depuis plus d'un an maintenant. Je veux les parcourir et les vérifier tous pour voir s'ils existent toujours. Quel est le meilleur moyen de les vérifier tous et de renvoyer une liste de ceux qui ne renvoient pas un site?Python vérifier l'URL va à une page
Répondre
c'est un peu lent, mais vous pouvez utiliser quelque chose comme ceci pour vérifier si l'URL est un live
import urllib2
try:
urllib2.urlopen(url)
return True # URL Exist
except ValueError, ex:
return False # URL not well formatted
except urllib2.URLError, ex:
return False # URL don't seem to be alive
plus rapide que urllib2 vous pouvez utiliser httplib
import httplib
try:
a = httplib.HTTPConnection('google.com')
a.connect()
except httplib.HTTPException as ex:
print "not connected"
vous pouvez également faire Checkout DNS (il n'est pas très pratique de vérifier si un site web n'existe pas):
import socket
try:
socket.gethostbyname('www.google.com')
except socket.gaierror as ex:
print "not existe"
Chec k ceci:
End puis:
import ping, socket
try:
result = ping.do_one('http://stackoverflow.com/', timeout=2)
except socket.error, e:
# url cannot be reached
print "Error:", e
J'ai plus de 1000 urls à vérifier. Est-ce que ce sera plus rapide que d'utiliser la réponse urllib2 ci-dessous? – John
Je pense que ce sera le cas. Essaye-le. Cela dépend aussi du réseau. Dans tous les cas, le serveur mettra un certain temps à répondre (vous pouvez définir un délai dans ma solution, comme vous pouvez le voir dans le code). – Klark
- 1. phpDocumentor va à PHP, comme X va Python (Django)
- 2. Recherche Wordpress va à la page principale
- 3. comment vérifier les utilisateurs quittent une page
- 4. LaTeX hyperref lien va à la mauvaise page
- 5. vérifier si mise à jour page Web
- 6. Comment vérifier EOF en Python?
- 7. Vérifier si un lien est mort ou ne pas utiliser Python sans télécharger la page web
- 8. Redirige vers la page puis va à la page d'accueil en HTML
- 9. Magento - vérifier si cms page
- 10. Comment fournir un bouton qui va changer le contenu de ma page actuelle à une page précédente en drupal
- 11. Comment vérifier si une méthode python est liée ou non?
- 12. Comment vérifier si une liste est vide en Python?
- 13. Python: Vérifier quand une commande cmd termine son travail
- 14. Comment vérifier les valeurs dans une instance avec Python?
- 15. Comment vérifier si une connexion MySQL est fermée en Python?
- 16. Comment vérifier qu'un lien hypertexte existe sur une page Web?
- 17. Comment puis-je vérifier à partir d'Android WebView si une page est une «page 404 non trouvée»?
- 18. vérifier pour IE et afficher une autre page
- 19. GC en python: que va-t-il se passer?
- 20. Mod_Rewrite vérifier le fichier existant va en forme de poire, ou passe mauvaise chaîne de requête
- 21. Focus ne va pas à l'intérieur EventHandler
- 22. Comment vérifier si une page affiche une balise spécifique <img>
- 23. Comment vérifier correctement si une zone de texte html est vide
- 24. vérifier les droits d'accès ldap avec python
- 25. Jquery - Afficher/Masquer - va toujours la page cliquez
- 26. comment vérifier les états voisins en python
- 27. Paramiko va-t-il être porté sur Python 3.x?
- 28. comment vérifier un hachage en python?
- 29. rails vérifier si la page est traduite
- 30. Comment épeler vérifier docstring python avec emacs?
est d'utiliser la prise plus rapidement que urllib2. J'ai essayé urllib2 mais il a fallu une éternité pour que je l'arrête – John
Je viens d'éditer ma question, et j'ai ajouté une solution plus rapide en utilisant httplib, et pour utiliser ping (l'autre réponse) ou dns lookup (la troisième solution dans ma réponse) n'est pas très pratique, car de nombreux sites web sont encore enregistrés dans le DNS et ils n'existent plus et pour le ping il ressemble à la recherche DNS + un ping ICMP qui ne dit pas non plus si le site web (serveur http) est en cours d'exécution "acceptant la connexion" ou pas – mouad
Le 'urllib2' travaillé pour moi derrière un proxy sur OS X.' httplib' ne fonctionnerait pas. –