2016-08-07 68 views
12

https://fantasy.premierleague.com/ adresindeki fantazi futbol hesabımda oturum açmama izin vermek için bir Python komut dosyası yazmaya çalışıyorum, ancak giriş yaptığımda bir şey doğru değil. Tarayıcım üzerinden giriş yaptığımda ve Chrome geliştirici araçlarını kullanarak ayrıntıları kontrol ettiğimde, Ben URL iste https://users.premierleague.com/accounts/login/ bulmak ve gönderilen form verilerini geçerli:Barclays premier league fantasy football'a giriş yapmak için Python'daki istek modülünü kullan?

csrfmiddlewaretoken:[My token] 
login:[My username] 
password:[My password] 
app:plfpl-web 
redirect_uri:https://fantasy.premierleague.com/a/login 

istek başlıklarının sayısı da vardır:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding:gzip, deflate, br 
Accept-Language:en-US,en;q=0.8 
Cache-Control:max-age=0 
Connection:keep-alive 
Content-Length:185 
Content-Type:application/x-www-form-urlencoded 
Cookie:[My cookies] 
Host:users.premierleague.com 
Origin:https://fantasy.premierleague.com 
Referer:https://fantasy.premierleague.com/ 
Upgrade-Insecure-Requests:1 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 

Yani isteği kullanarak kısa Python komut yazdım kütüphanesi giriş yapmayı denemek ve aşağıdaki gibi bir sayfaya gitmek için:

01 Başımı dict gelen 'ev sahibi' kaldırırsanız

b'\n<html>\n<head>\n<title>Fastly error: unknown domain users.premierleague.com</title>\n</head>\n<body>\nFastly error: unknown domain: users.premierleague.com. Please check that this domain has been added to a service.</body></html>' 

, bir HTML yanıt almak:

import requests 
with requests.Session() as session: 
url_home = 'https://fantasy.premierleague.com/' 
html_home = session.get(url_home) 
csrftoken = session.cookies['csrftoken'] 
values = { 
    'csrfmiddlewaretoken': csrftoken, 
    'login': <My username>, 
    'password': <My password>, 
    'app': 'plfpl-web', 
    'redirect_uri': 'https://fantasy.premierleague.com/a/login' 
} 
head = { 
    'Host':'users.premierleague.com', 
    'Referer': 'https://fantasy.premierleague.com/', 
} 
session.post('https://users.premierleague.com/accounts/login/', 
      data = values, headers = head) 
url_transfers = 'https://fantasy.premierleague.com/a/squad/transfers' 
html_transfers = session.get(url_transfers) 
print(html_transfers.content) 

benim sonrası isteği içeriğini çıktısını, ben bir HTML yanıt kodu 500 hatası alıyorum kod 405 hata ile:

b'' 

Ben ettik çeşitli başım dict İstek başlıklarını kombinasyonları ve işe yaramış görünmüyor dahil çalıştı.

+0

'premierleague.com'u' Host' olarak kullandığınızda ne oldu? –

+0

@OrDuan Aynı mesajı alıyorum: unknown domain premierleague.com –

+0

Merhaba. Squad'ları nasıl güncelleyeceğinizi biliyor musunuz, yoksa python'u kullanarak transferleri nasıl başlatacağınızı biliyor musunuz? –

cevap

3

Aşağıdakiler benim için çalıştı. Ben sadece benim gibi, programlı takımınızı almaya çalışıyoruz düşünüyorum

session.post('https://users.premierleague.com/accounts/login/', 
      data = values) 

headers = head kaldırıldı. Kodun beni başlattı teşekkürler.

+1

Teşekkürler, bu işe yarıyor gibi görünüyor. Bunu daha önce denedim, ancak geri gönderdiği HTML, içinde herhangi bir oyuncu ismi içermiyordu, bu yüzden ana sayfayı bana geri beslediğini farz ettim! Görünüşe göre oyunculardaki veriler HTML'de kodlanmıyor, ancak belki de javascript ile yazdırılıyor mu? Kaynak kodunu google chrome’da indirdim ve hiçbir şey gösterilmiyor. Tam HTML'yi nasıl alacağınızı biliyorsunuz, böylece onu ayrıştırabilir ve oyuncu değişiklikleri yapabilir misiniz? –