爬蟲時url中http和https的區別


今天在爬取一個網頁時發現總是爬取不成功,信息量很少,只有幾行代碼,而原網頁代碼量是很多的,后來我把url中的https換成了http后就把網頁源碼全部爬取了,查了資料后發現url中使用http和https是有很大區別的:http獲取數據時信息齊全,https獲取數據的信息有缺失,在確定網絡地址后,一般采用http

如何訪問沒有采用HTTPS協議的網站:

from urllib import request
# 導入pythopn ssl處理模塊
import ssl

# 利用非認證上下文環境替換認證的上下文環境
ssl._create_default_https_context = ssl._create_unverified_context
# 之前12306沒有采用HTTPS協議,需要這樣設置一下,18年開始采用了之后就不用這樣操作了
url = "https://www.12306.cn/index/"
rsp = request.urlopen(url)
html = rsp.read().decode()
print(html)

1.HTTP和HTTPS的基本概念
  HTTP:是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標准(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。
  HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

2.HTTP與HTTPS之間的區別 
  HTTP協議傳輸的數據都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私信息非常不安全,為了保證這些隱私數據能加密傳輸,於是網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。簡單來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比HTTP協議安全。
  HTTPS和HTTP的區別主要如下:
  1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
  2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
  3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
  4、http的連接很簡單,是無狀態的;https協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM