Python爬蟲教程-15-讀取cookie(人人網)和SSL(12306官網)

肖朋偉發表於2018-09-06

Python爬蟲教程-15-爬蟲讀取cookie(人人網)和SSL(12306官網)

上一篇寫道關於儲存cookie檔案,本篇介紹怎樣讀取cookie檔案

cookie的讀取

# 讀取cookie檔案
from urllib import request,parse
from http import cookiejar

# 建立cookiejar的例項
cookie = cookiejar.MozillaCookieJar()
cookie.load('py15renrenCookie.txt', ignore_discard=True, ignore_expires=True)

# 常見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 getHomePage():
    # 地址是用在瀏覽器登入後的個人資訊頁地址
    url = "http://www.renren.com/967487029/profile"

    # 如果已經執行login函式,則opener自動已經包含cookie
    rsp = opener.open(url)
    html = rsp.read().decode()

    with open("py13rsp.html", "w", encoding="utf-8")as f:
        # 將爬取的頁面
        print(html)
        f.write(html)

if __name__ == '__main__':

    getHomePage()

執行結果

同樣是當返回頁面有個人資訊,才算成功!
這裡寫圖片描述

SSL

  • ssl證照就是指遵守ssl安全套階層協議的伺服器數字證照(SercureSocketLayer)
  • 美國網景公司開發
  • 使用ssl,加密資訊
  • 俗稱https協議
  • CA(CertificateAuthority)是數字證照任重中心,是發放,管理,廢除數字證照的收信人的第三方機構
  • 遇到不信任的SSL證照,需要單獨處理
  • 案例v17ssl檔案:
'''
使用ssl
1.直接訪問https://www.12306.cn/mormhweb/會無法訪問,報錯如下
 ----------------------------------
 您的連線不是私密連線
 攻擊者可能會試圖從 www.12306.cn 竊取您的資訊
 (例如:密碼、通訊內容或信用卡資訊)
 -----------------------------------
2.不使用https使用http解可以訪問
3.因為12306的證照是自己做的,而不是第三方機構
4.所以說http不安全會洩露個人資訊
'''
from urllib import request

import ssl

# 利用非認證上下文環境替換認證的上下文環境
ssl._create_default_https_context = ssl._create_unverified_context

url = "https://www.12306.cn/mormhweb/"
rsp = request.urlopen(url)

html = rsp.read().decode()

print(html)

執行結果

這裡寫圖片描述
不是報錯頁面,表示使用成功

更多文章連結:Python 爬蟲隨筆


  • 本筆記不允許任何個人和組織轉載

相關文章