J'essaie d'implémenter en Python un programme simple qui lit des pages web rom et les écrit dans des fichiers. Il y a environ 2000 pages de messages incrémentalement numérotés, mais certains nombres manquent.Téléchargement automatique de page Web Python, avec nom d'utilisateur, mot de passe et cookies
Le site Web est protégé par un nom d'utilisateur et un mot de passe, et j'utilise les mêmes nom d'utilisateur et mot de passe que ceux que j'utilise habituellement pour y accéder manuellement. J'utilise des exemples de code avec la gestion des cookies que j'ai trouvé dans le site Web officiel de Python, mais quand je les ai essayer le site que je suis en train de copier les réponses
« Votre navigateur n'accepte pas nos cookies. Pour voir (Code 0) "
De toute évidence, il y a un problème avec les cookies, et peut-être que je ne gère pas correctement le nom d'utilisateur et le mot de passe. Toute suggestion concernant le code suivant?
import urllib2
import cookielib
import string
import urllib
def cook():
url="http://www.URL.com/message/"
cj = cookielib.LWPCookieJar()
authinfo = urllib2.HTTPBasicAuthHandler()
realm = "http://www.URL.com"
username = "ID"
password = "PSWD"
host = "http://www.URL.com/message/"
authinfo.add_password(realm, host, username, password)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj), authinfo)
urllib2.install_opener(opener)
# Create request object
txheaders = { 'User-agent' : "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)" }
try:
req = urllib2.Request(url, None, txheaders)
cj.add_cookie_header(req)
f = urllib2.urlopen(req)
except IOError, e:
print "Failed to open", url
if hasattr(e, 'code'):
print "Error code:", e.code
else:
print f
cook
url="http://www.URL.com/message/"
urllib.urlretrieve(url + '1', 'filename')
Une alternative plutôt qu'une solution: utiliser la bibliothèque mécaniser http://wwwsearch.sourceforge.net/mechanize/ –
Pas une solution non plus, mais si vous cherchez à gratter du HTML avec python et que vous ne connaissez pas [BeautifulSoup] (http://www.crummy.com/software/BeautifulSoup), c'est extrêmement utile. – Russ