2017-07-11 31 views
5

Tôi đang bỏ mới vào Python và tìm kiếm trên web. Và tôi thậm chí không thể đạt được bước đầu tiên để cạo một trang web: đăng nhập. Trước khi tôi cố gắng sử dụng mechanize hoặc selenium, trước tiên tôi muốn sử dụng requests. Ai đó có thể giúp tôi?Làm cách nào để sử dụng yêu cầu python để đăng nhập trang web này?

Trang web tôi đang cố gắng đăng nhập là here.

Đối với những người không có tài khoản và muốn giúp tôi, tôi sẽ cung cấp thông tin tôi nhận được bằng cách sử dụng Chrome.

Bài đăng đầu tiên: POST_1.JPG. Các POST thứ hai: POST_2.JPG

Và đây là mã của tôi cho nỗ lực đăng nhập:

import requests 

s = requests.Session() 
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'} 
payload = {'username': 'USERNAME', 
      'password': 'PASSWORD', 
      'submit.x': '21', 
      'submit.y': '12'} 

s.post('https://ssologin.cuny.edu/oam/server/auth_cred_submit', data = payload, headers = headers) 
target_page = s.get('https://home.cunyfirst.cuny.edu/psp/cnyepprd/EMPLOYEE/EMPL/h/?tab=DEFAULT', headers = headers) 

if 'login' in target_page.url: 
    print("Failed to Login") 
else: 
    print("Logged in Successfully!") 

Cảm ơn !!!

+0

Không thể giúp đỡ mà không một tên người dùng và mật khẩu –

Trả lời

4

Bạn chỉ cần để tái tạo hành vi của trang vì nó là:

from requests import Session 

login_data = { 
    'username' : 'YOUR_USERNAME_HERE', 
    'password' : 'YOUR_PASSWORD_HERE', 
    'submit.x' : '41', 
    'submit.y' : '2', 
} 

headers = { 
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36', 
    'Referer': 'https://ssologin.cuny.edu/cuny.html?resource_url=https%3A%2F%2Fhome.cunyfirst.cuny.edu%252Fpsp%252Fcnyepprd%252FEMPLOYEE%252FEMPL%252Fh%252F%3Ftab%253DDEFAULT', 
} 

s = Session() 

s.get("https://home.cunyfirst.cuny.edu/psp/cnyepprd/EMPLOYEE/EMPL/h/?tab=DEFAULT") 
s.post("https://m.addthis.com/live/red_lojson/100eng.json?sh=590&ph=1512&ivh=590&dt=5366&pdt=11272&ict=&pct=1&perf=widget%7C11273%7C1445%2Clojson%7C12846%7C236%2Csh%7C12848%7C79&rndr=render_toolbox%7C13088&cmenu=null&ppd=0&ppl=0&fbe=&xmv=0&xms=0&xmlc=0&jsfw=jquery&jsfwv=jquery-1.7.1&al=men&scr=0&scv=0&apiu=1&ba=3&sid=59646cef3b3fdec3&rev=v7.15.4-wp&pub=cunywebservices&dp=ssologin.cuny.edu&fp=cuny.html%3Fresource_url%3Dhttps%253A%252F%252Fhome.cunyfirst.cuny.edu%25252Fpsp%25252Fcnyepprd%25252FEMPLOYEE%25252FEMPL%25252Fh%25252F%253Ftab%25253DDEFAULT&pfm=0&icns=") 
response = s.post("https://ssologin.cuny.edu/oam/server/auth_cred_submit", data=login_data, headers=headers) 

if 'Sign out' in response.content: 
    print "[*] Logged in successfully!" 
else: 
    print "[!] Couldn't login..." 
+0

Cảm ơn rất nhiều! Nó hoạt động như một say mê! Tôi không biết tôi nên GET trước và sau đó POST. –

+0

Niềm vui của tôi @jhhPhi –

+0

Bạn có thể giải thích tại sao tôi phải GET trước? @ Andrés Pérez-Albela H –

Các vấn đề liên quan