from urllib import request, parse from http import cookiejar # 創建cookiejar的實例 cookie = cookiejar.CookieJar() # 生成cookie的管理器 cookie_handler = request.HTTPCookieProcessor(cookie) # 創建http請求管理器 http_handler = request.HTTPHandler() # 生成https管理器 https_handler = request.HTTPSHandler() # 創建請求管理器 opener = request.build_opener(http_handler, https_handler, cookie_handler) def login(): ''' 負責初次登陸 需要輸入用戶名密碼,用來過去登陸cookie憑證 ''' # 此url需要從登陸from的action屬性中提取 url = 'http://www.renren.com/PLogin.do' # 鍵值需要從登陸from的兩個對應input中提取name屬性 data = { 'email': "185807487xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 'password': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' } # 把數據進行編碼 data = parse.urlencode(data) # 創建一個請求對象 req = request.Request(url, data=data.encode()) # 使用openner發起請求 opener.open(req) def getHomepage(): url = 'http://www.renren.com/974598244/profile' # 如果已經執行了login函數,則opener自己已經包含了對應的cookie值 rsp = opener.open(url) html = rsp.read().decode() with open("rsp.html", 'w', encoding='utf-8') as f : f.write(html) if __name__ == '__main__': login() getHomepage()