2016-11-09 4 views
-1

Ich möchte ein regex Befehl ausgeführt werden soll, einige Inhalte erreichen, die nur zugänglich ist, wenn ich mich einloggen.Wie bleibe ich angemeldet, während ich eine Regex verwende?

import urllib, urllib2, cookielib, re 

username = 'USERNAME' 

password = 'PWD' 

cj = cookielib.CookieJar() 

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 

login_data = urllib.urlencode({'username' : username, 'j_password' : password}) 

opener.open('https://example.com/account/login.html/?next=/', login_data) 

AQK=opener.open('http://example.com/membercontent') 

AQJ=AQK.read() 

regex='<p class="grid_3 prefix_1 data ">(.+?)</p>' 

pattern=re.compile(regex) 

content=re.findall(pattern,AQJ) 

print content 

Wenn ich den Befehl über python laufen nicht die Inhalte erreichen, die ich suche. Es antwortet [].

Ich bin sicher, dass der Regex-Befehl korrekt ist, da es funktioniert, wenn ich versuche, Nichtmitgliedsinhalt zu erreichen.

+0

Haben Sie den einfachen Schritt versucht, AQJ auszudrucken? Das sollte Ihnen alle Informationen geben, die Sie benötigen, um zu überprüfen, wonach Sie suchen. –

Antwort

1

Es scheint, dass AQJ enthält nicht die Regex, die Sie suchen. Achten Sie sorgfältig darauf, dass der Anmeldevorgang korrekt ausgeführt wird.

Die Variable enthält eine Zeichenkette, nachdem der Befehl AQK.read() ausgeführt wurde. Daher hängt der Rückgabewert content nicht vom Verbindungsstatus ab, wenn der regex-Befehl ausgeführt wird.

Verwandte Themen