爬虫:利用cookie获取人人网登录后网页信息
生活随笔
收集整理的這篇文章主要介紹了
爬虫:利用cookie获取人人网登录后网页信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
爬蟲:利用cookie獲取人人網登錄后網頁信息
思路:
1、首先創建一個自動獲取登錄cookie的實例,創建請求管理器opener
2、分析網頁源碼,獲取登錄的form信息,并寫入data,訪問登錄界面url,獲取cookie信息
3、分析登錄后頁面url,利用得到的cookie信息獲取網頁
一、創建cookie實例及請求管理器opener
from urllib import request, parse from http import cookiejar # 創建一個cookie實例 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)?二、分析源碼,模擬登陸獲取cookie
打開網頁源碼,利用查找功能,找到form所在位置,可以看到我們所需要的鍵值和要上傳的信息的url
def login():url = 'http://www.renren.com/PLogin.do''''登錄人人網:return: '''data = {'email': 'xxxxxxxx', # 個人郵箱或手機號'password': 'xxxxxx' # 個人密碼}# 對數據進行編碼data = parse.urlencode(data).encode()req = request.Request(url, data=data)rsp = opener.open(req)三、利用cookie獲取登錄后的網頁信息
?
def getHome():url = 'http://www.renren.com/xxxxxx/profile' # 登錄后個人的主頁網址rsp = opener.open(url)html = rsp.read().decode('utf-8')print(html)運行代碼,將輸出結果放入rsp.html文件里,然后用瀏覽器打開,就可以看到,人人網的個人主頁一閃而過,網頁會阻止重定向。?
if __name__ == '__main__':login()getHome()完整代碼:?
from urllib import request, parse from http import cookiejar# 創建一個cookie實例 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():url = 'http://www.renren.com/PLogin.do''''登錄人人網:return: '''data = {'email': 'xxxxxxxx', # 個人郵箱或手機號'password': 'xxxxxx' # 個人密碼}# 對數據進行編碼data = parse.urlencode(data).encode()req = request.Request(url, data=data)rsp = opener.open(req)def getHome():url = 'http://www.renren.com/xxxxxx/profile' # 登錄后個人的主頁網址rsp = opener.open(url)html = rsp.read().decode('utf-8')print(html)if __name__ == '__main__':login()getHome()?
總結
以上是生活随笔為你收集整理的爬虫:利用cookie获取人人网登录后网页信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python画图去掉边框
- 下一篇: pytorch报错RuntimeErro