Maison  >  Article  >  développement back-end  >  la requête simule un exemple de code de connexion Zhihu

la requête simule un exemple de code de connexion Zhihu

零下一度
零下一度original
2017-06-23 10:43:171488parcourir

demande d'importation

essayez :

importez cookielib version #python2

sauf :

importez http.cookiejar en tant que cookielib Version #python3

importer ré

importer

session=request.session()

session.cookies=cookielib.LWPCookieJar(filename="cookies. txt") #Stocker les cookies dans un fichier local

#Charger le fichier de cookies

essayez :

session.cookies.load(ignore_discard=True)

sauf :

 print("les cookies n'ont pas pu être chargés")

User_Agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/59.0.3071.86 Safari/ 537.36 "

header={

 "HOST"  : "www.zhihu.com",

 "Référent"   : "https://www.zhihu.com" ,

 "User_Agent"  : User_Agen"

>

#Get xsrf

def get_xsrf():

 response=session. post ("https://www.zhihu.com",headers=header) #La demande de pages Web nécessite des fichiers d'en-tête

match_obj=re.match(' .*name="_xsrf" value="(. * ??? "

def get_index():

response=session.get("https://www.zhihu.com",headers=header)

avec open(" index_page.heml",wb) as f:

 f,write(response.text.encode("utf-8"))

print ("ok")

#Simuler la connexion Zhihu

def zhihu_login(account,password):

 if re.match("^1d{10}",account):  #Vérifiez si le compte est un numéro de téléphone portable

imprimer ("Connexion mobile")

post_url="https://www.zhihu.com/login/phone_num"

post_data={

"_xsrf"   : get_xsrf(),

  "phone_num"   : compte,

  "password"   : mot de passe

  }

 els e :

 si "@" dans le compte :

imprimer ("Connexion par e-mail")

post_url="https://www.zhihu.com/login/email"

post_data={

 "_xsrf" :get_xsrf(),

 }

réponse_text=session.post(post_url ,post_data,headers=header)

session.cookies.save()

#Vérifiez si la connexion a réussi

def is_login():

inbox_url="https://www.zhihu.com/inbox"

réponse=session.get(inbox_url,headers=header,allow_redirects= False)

si réponse.status_code !=200 :

return False

else:

return True

zhihu.login( "18782902568","admin123")

get_index ()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn