2013-12-18 3 views
0

저는 Python에 익숙하지 않으며 Python을 사용하여 Google 계정 로그인이 필요한 여러 웹 사이트를 크롤링하려고합니다. 예를 들어, 웹 사이트 xxx.appspot.com을 크롤링하고 액세스하려면 Google 계정에 로그인해야합니다. 이 데이터베이스는 검증이 필요하고 공인 인력이기 때문에.Google 계정으로 로그인해야하는 웹 사이트에서 Python을 사용하여 웹 크롤링을 수행하는 방법은 무엇입니까?

내가 좋아하는 일을 할 때

content=urllib.urlopen(target_url).read() 

'콘텐츠'전은 물론, 단지 로그인 페이지를 얻을. 실제 크롤링을 수행하기 전에 크롤러가 Google 계정에 로그인 할 수 있도록 코드를 구현하려면 어떻게해야합니까?

답변

4

mechanizecookielib을 사용해보세요.

이하의 코드는 Gmail 로그인에 도움이됩니다. 당신의 각각의 URL과 물건으로 이것을 시도하십시오. 메일, 읽지 않은 메일, 스팸 메일을 읽고처럼

import mechanize   

def gmaillogin(): 
    browser = mechanize.Browser(factory=mechanize.RobustFactory()) 
    browser.set_handle_robots(False) 
    r = browser.open("https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=http://mail.google.com/mail/&scc=1&ltmpl=default&ltmplcache=2&emr=1") 
    browser.select_form(nr=0)    
    browser.form["Email"] = "emailid" 
    browser.form["Passwd"] = "password"  
    browser.submit()       

    html = browser.response().readlines()  

    print browser.response().read()   




if __name__ == "__main__": 
    gmaillogin() 
+0

감사합니다. 귀하의 코드는 정말 좋은 예제이며 코드를 기반으로, 나는 내가 원하는 코드를 성공적으로 작성했습니다. – objmagic

0
import imaplib 

class pygmail: 
    def __init__(self): 
    self.IMAP_SERVER='imap.gmail.com' 
    self.IMAP_PORT=993 
    self.M = None 
    self.response = None 

    def login(self, username, password): 
    self.M = imaplib.IMAP4_SSL(self.IMAP_SERVER, self.IMAP_PORT) 
    rc, self.response = self.M.login(username, password)#Provide your user name and password 
    return rc 

    def logout(self): 
    self.M.logout() 

g = pygmail() 
g.login('[email protected]', 'pa$$word') 
print g.response 

이 당신이 메일에서 기본 데이터를 가져 오는 데 도움이됩니다, 당신은 메일에서 데이터를 얻을하는 데 사용할 수있는을 통해 사용할 수 많은 방법이 있습니다 다른 많은 방법. http://segfault.in/2010/12/sending-gmail-from-python/에서 몇 가지 방법을 더 발견 할 수 있습니다. 언제든지 되돌릴 수 있습니다.

관련 문제