2010-12-11 30 views
7

bu diğer soruyu gördüm: How to use Python to login to a webpage and retrieve cookies for later usage?Python kullanarak bir web sitesine nasıl giriş yapabilirim?

Ancak, cevabın basit modifikasyon için beni işe yaramadı, bu yüzden benim hedefe ulaşmak nasıl merak ediyorum. Bunun ne yaptıklarını bilen birisi için oldukça basit olması gerektiğini düşünüyorum http://mog.com/my_mog/playlists

:

ben https://mog.com/hp/sign_in giriş yapıp aşağıdaki sayfada benim çalma listelerinin isimlerini ayıklamak çalışıyorum, bağlam vermek. Siteye giriş yapmak ve parola korumalı bir sayfaya erişmek için kullanacağınız bazı temel kodlar harika olacaktır ve koddaki her satırın bir cümleyle ne yapılacağını açıklamak daha iyi olacaktır. Bu yüzden daha iyi bir anlayışa sahip olabilirim. kodun yaptığı şey.

import mechanize 
br=mechanize.Browser() 
br.open('https://mog.com/hp/sign_in') 
br.select_form(nr=0) 
br['user[login]']= your_login 
br['user[password]']= your_password 
br.submit() 
br.retrieve('http://mog.com/my_mog/playlists','playlist.html') 

DÜZENLEME:
bağlantılarınızı almak için bu ekleyebilirsiniz:

for link in br.links(): 
    print link.url, link.text 

veya playlist.html başlayarak, sen Beautifulsoup ve regex kullanabilirsiniz

+0

Neyi değiştirdiniz? Senin için çalışmadığını nereden biliyorsun? –

+0

Web sitelerini ve giriş bilgilerini değiştirdim. İşe yaramadığını biliyorum çünkü sayfadaki linkleri yazdırdım ve aynı bağlantı değildi. Kayıt sayfasından bağlantıları yazdırır. – jonderry

+0

Belki de bu satırı doğru bir şekilde değiştirmiyorum: 'login_data = urllib.urlencode ({'kullanıcıadı': kullanıcı adı, 'j_password': şifre})' Ama hangi değişikliklerin yapıldığını anlayamıyorum. – jonderry

cevap

12

mechanize ile deneyin:

from BeautifulSoup import BeautifulSoup 
import re 
soup = BeautifulSoup(file('playlist.html').read()) 
for link in soup.findAll('a', attrs={'href': re.compile("your matching re")}): 
    print link.get('href') 
+1

Bunu yazdım ve html'yi bir dosyaya yazdım. Bir örüntüyü mog.com/my_mog/playlists adresinden eşleşen bazı bağlantılar almak istiyorsam, bunun için komut nedir? Mekanize etmek için açık, kolay aranabilir belgeler bulmakta zorlanıyorum. – jonderry

+3

@jonderry Bir komutun olduğunu düşünmüyorum, regexp'i bir desenle eşleştirmek için kullanmak isteyebilirsiniz – Asterisk

İlgili konular