使用到的 Python 庫包括 urllib, urllib2, cookielibhtml
因爲目標網站使用簡單的 form-submit 結構,因此能夠省去不少事。python
基本過程是經過 urllib2.build_opener() 創建新的打開連接的方式,這種打開方式包含 cookie 信息,從而維護一個登陸的 session,而後依據這個 session 以登陸用戶的身份查詢信息。cookie
借用了[1]中的一些代碼,最後的樣子以下session
class Crawl(object): def __init__(self): self.operation = None # 初始化一個CookieJar來處理Cookie self.cj = cookielib.CookieJar() # 實例化一個全局opener self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj)) urllib2.install_opener(self.opener) def login(self, url=None, email=None, passwd=None): postdata = {'login_email': email, 'login_password': passwd, 'origURL': url, } self.operation = self._get_response(url, postdata) curl = self.operation.geturl() session_pattern = re.compile(r'jsessionid=(\w+)') suid = session_pattern.search(curl) if suid: print 'login success' return True else: print 'login failed' return False def _get_response(self, url, data=None): if data is not None: # 獲取cookie req = urllib2.Request(url, urllib.urlencode(data)) else: # 訪問主頁,自動帶着cookie信息 req = urllib2.Request(url) response = self.opener.open(req) return response
參考資料:curl
[1]. [Python代碼]人人網登陸腳本, http://www.pythoner.com/65.htmlpost
[2]. 用Python模擬登陸網站, http://www.nowamagic.net/academy/detail/1302882網站