本文實例講述了Python爬取需要登錄的網(wǎng)站實現(xiàn)方法。分享給大家供大家參考,具體如下:
import requestsfrom lxml import html# 創(chuàng)建 session 對象。這個對象會保存所有的登錄會話請求。session_requests = requests.session()# 提取在登錄時所使用的 csrf 標記login_url = "https://bitbucket.org/account/signin/?next=/"result = session_requests.get(login_url)tree = html.fromstring(result.text)authenticity_token = list(set(tree.xpath("http://input[@name='csrfmiddlewaretoken']/@value")))[0]payload = { "username": "<你的用戶名>", "password": "<你的密碼>", "csrfmiddlewaretoken": authenticity_token # 在源代碼中,有一個名為 “csrfmiddlewaretoken” 的隱藏輸入標簽。}# 執(zhí)行登錄result = session_requests.post( login_url, data = payload, headers = dict(referer=login_url))# 已經(jīng)登錄成功了,然后從 bitbucket dashboard 頁面上爬取內(nèi)容。url = 'https://bitbucket.org/dashboard/overview'result = session_requests.get( url, headers = dict(referer = url))# 測試爬取的內(nèi)容tree = html.fromstring(result.content)bucket_elems = tree.findall(".//span[@class='repo-name']/")bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]print(bucket_names)更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
新聞熱點
疑難解答