Python——網絡爬蟲、登錄、代理設置

2021-01-09 胡桃HZ

一、cookie和sesson

1、什麼是cookie和session

cookie:

cookie是網站用來辨別用戶身份,進行會話跟蹤,存儲在本地終端上的數據。

session:

session(會話)本來含義是指有始有終的一系列動作和消息。在web中,session主要用來在伺服器端存儲特定用戶對象會話所需要的信息。

2、cookie和session產生的原因

http協議是一個無狀態協議,在特定操作的時候,需要保存信息,進而產生了cookie和session。

3、cookie原理

cookie由伺服器產生,瀏覽器第一次請求,伺服器發送給客戶端進而保存,瀏覽器在繼續訪問時,就會在請求頭的cookie欄位上附帶cookie信息,這樣伺服器就可以識別是誰在訪問了,但cookie也存在一定的缺陷,cookie數據保存在本地,不安全,容易被篡改。

cookie大小受限,本身最大4kb

cookie雖然在一定程度上解決了保持狀態的需求,但是我們希望有一種新的技術可以克服cookie的缺陷,這種技術就是session。

4、session原理

session數據保存在伺服器,解決了安全問題。

由於伺服器上有session,但是客戶端的請求發送過來,伺服器分不清哪個是session_a,哪個是session_b,這時cookie就作為橋梁出現了,在cookie中存在sessionid欄位,可以用來表示這個請求對應伺服器中的session。

禁用cookie,一般情況下session也無法使用。在特殊情況下,可以使用url重寫技術來使用session。(url重寫技術:將sessionid拼接到url裡)

二、代理設置

在我們爬取網絡上的數據時,經常會遇到一些網站採取了防爬取技術,或是因為自己採集網站信息的強度和採集速度太大,給對方伺服器帶去了更多的壓力。在我們爬取數據時,如果一直使用同一個ip,很可能就會被進位訪問頁面,所以,做網絡爬蟲都躲不過去ip問題。

1、代理基本原理

代理,實際上就是代理伺服器(proxy server),它的功能是代理網絡用戶去取得網絡信息。形象地說,它是網絡信息的中轉站。在我們正常請求一個網站時,是發送了請求給web伺服器,web伺服器把響應傳回給我們。如果設置了代理伺服器,實際上就是在本機和伺服器之間搭建了一個橋,此時本機不是直接向 web伺服器發起請求,而是向代理伺服器發出請求,請求會發送給代理伺服器,然後由代理伺服器在發送給 web伺服器,接著由代理伺服器再把 web 伺服器返回的響應轉發給本機。這樣我們同樣可以正常訪問網頁,但這個過程中web伺服器識別出的真是ip就不在是我們自己的ip了,就成功實現了ip偽裝。

2.代理分類

1)、根據代理匿名程度:

①高度匿名代理(高匿):可以完整將ip編程代理伺服器的ip,對方追蹤不到真實的ip;

②普通匿名代理(普匿):對方可以追蹤到真實的ip;

③透明代理:如果透明代理加密,就變成匿名代理。

2)、根據協議分類:

①HTTP代理:主要用於訪問頁面;

②SSL代理:用於訪問安全性高的網站,ssl安全套接層;

③Talent代理:主要用於遠程控制;

④Pop3/SMTP:主要用於郵件發送。

三、頁面響應類型

1、數據的結構化分類:

1)、結構化數據

可以用統一的結構加以表示的數據。可以使用關係型資料庫表示和存儲,表現為二維形式的數據,一般特點是:數據以行為單位,一行數據表示一個實體的信息,每一行數據的屬性是相同的。

2)、半結構化數據

結構化數據的一種形式,並不符合關係型資料庫或其它數據表的形式關聯起來的數據模型結構,但包含相關標記,用來分隔語義元素以及對記錄和欄位進行分層。因此它也被稱為自描述的結構。常見的半結構數據有:HTML,XML,json等,實際上是以樹或者圖的結構來存儲的。

3)、非結構化數據

就是沒有固定的結構,各種圖片,文檔,視頻或音頻都屬於非結構化數據。

2、json數據

Json(JavaScript Object Notation,JS對象標記),是一種輕量級的數據交換格式。json是js對象的字符串表達式,他使用文本形式表示一個js對象的信息,本質是一個字符串。

Js 中對象和數組是比較特殊並且常用的兩種類型:

1).對象表示為鍵值對

2).數據用逗號分隔

3).花括號保存對象

4).方括號保存數組。

3、處理json數據的兩種方式

1)、使用json模塊:

①將json字符串類型轉換成Python類型

json.loads(json的字符串格式)

②讀取文件內容

json.load(json的字符串格式)

③將Python類型轉換成json字符串類型

json.dumps(python類型)

④將Python類型轉換成就送字符串類型,保存到文件中

json.dump(python類型)

2)、requests方法:

如果使用requests模塊來獲取數據,也可以使用response.json()直接獲取json數據所對應的Python數據類型的數據。

相關焦點

  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    總目錄 零基礎全能篇(4套課程) 實用編程技巧進價(1套課程) 數據分析與挖掘(8套課程) 辦公自動化(3套課程) 機器學習與人工智慧(7套課程) 開發實戰篇(4套課程) 量化投資(2套課程) 網絡爬蟲(6套課程) 資料庫操作(1套課程) python
  • 最全的 Python 反爬蟲及應對方案!
    解決方法:可以自己設置一下user-agent,或者更好的是,可以從一系列的user-agent裡隨機挑出一個符合標準的使用。實現難度:★ 2. IP限制如果一個固定的ip在短暫的時間內,快速大量的訪問一個網站,後臺管理員可以編寫IP限制,不讓該IP繼續訪問。解決方法:比較成熟的方式是:IP代理池img簡單的說,就是通過ip代理,從不同的ip進行訪問,這樣就不會被封掉ip了。
  • Python開發簡單爬蟲【學習資料總結】
    一、簡單爬蟲架構 不同情景.png 比如需要登錄才能訪問的網頁,要添加cookie的處理。
  • Python爬蟲和反爬蟲的鬥爭
    在抓取對方網站、APP 應用的相關數據時,經常會遇到一系列的方法阻止爬蟲。網站APP們這麼做的原因,一是為了保證服務的質量,降低伺服器負載,二是為了保護數據不被獲取。爬蟲與反爬蟲的鬥爭經久不衰,這裡神龍IP給大家分享一些常見的反爬蟲手段。
  • Python 爬蟲面試題 170 道
    ,網絡編程基本知識等限於篇幅,本文無法展示全部題答案掃碼訂閱查看 170 道面試題所有題目語言特性>128.寫一個冒泡排序129.寫一個快速排序130.寫一個拓撲排序131.python 實現一個二進位計算132.有一組「+」和「-」符號,要求將「+」排到左邊,「-」排到右邊,寫出具體的實現方法。
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    而這裡的「技術手段」就是指網絡爬蟲。 今天,小編將與您分享一個爬蟲的基本知識和入門教程:什麼是爬蟲?網絡爬蟲,也叫作網絡數據採集,是指通過編程從Web伺服器請求數據(HTML表單),然後解析HTML以提取所需的數據。
  • Python 爬蟲面試題 170 道:2019 版
    90.寫一段匹配郵箱的正則表達式其他內容91.解釋一下 python 中 pass 語句的作用?97.列舉 5 個 Python 中的標準模塊98.如何在函數中設置一個全局變量99.pathlib 的用法舉例100.Python 中的異常處理,寫一個簡單的應用場景101.Python 中遞歸的最大次數,那如何突破呢?
  • 如何快速學會Python爬蟲(入門篇)
    Python爬蟲實戰二之爬取百度貼吧帖子3. Python爬蟲實戰三之實現山東大學無線網絡掉線自動重連4. Python爬蟲實戰四之抓取淘寶MM照片5. Python爬蟲實戰五之模擬登錄淘寶並獲取所有訂單6.
  • 如何開始寫你的第一個python腳本——簡單爬蟲入門!
    好多朋友在入門python的時候都是以爬蟲入手,而網絡爬蟲是近幾年比較流行的概念,特別是在大數據分析熱門起來以後,學習網絡爬蟲的人越來越多,哦對,現在叫數據挖掘了!其實,一般的爬蟲具有2個功能:取數據和存數據!好像說了句廢話。。。
  • python爬蟲-urllib、urllib2、requests三者關係
    只要人能看到的東西,理論上都是爬蟲可以獲取的。不論靜態頁面還是動態頁面。也不論pc端的頁面還是移動端的app。話有點大,但這就是本系列的目的。爬蟲編程,有很多語言可選,python、php、go、java···甚至是c。這裡我們選擇python作為爬蟲的程式語言,因為它簡單易上手,並且節約生命。
  • Python,爬蟲開發的不二選擇
    網際網路是由一個個站點和網絡設備組成的大網,我們通過瀏覽器訪問站點,站點把HTML、JS、CSS代碼返回給瀏覽器,這些代碼經過瀏覽器解析、渲染,將豐富多彩的網頁呈現我們眼前。如果我們把網際網路比作一張大的蜘蛛網,數據便是存放於蜘蛛網的各個節點,而爬蟲就是一隻小蜘蛛,沿著網絡抓取自己的獵物(數據)。爬蟲指的是:向網站發起請求,獲取資源後分析並提取有用數據的程序。
  • 雲立方網科普:常用高效的Python爬蟲框架有哪些?
    Python是現在非常流行的程式語言,而爬蟲則是Python語言中最典型的應用,下面是總結的高效Python爬蟲框架,大家看看是否都用過呢。 Pyspider 是一個用python實現的功能強大的網絡爬蟲系統,能在瀏覽器界面上進行腳本的編寫,功能的調度和爬取結果的實時查看,後端使用常用的資料庫進行爬取結果的存儲,還能定時設置任務與任務優先級等。
  • Python破解反爬蟲:最新反爬蟲有道翻譯中英文互譯破解,附代碼
    由於爬蟲的出現,導致很多網頁都設置了反爬蟲機制:常見的反爬蟲機制就是在客戶端發出請求的時候,在請求的內容中新增一些內容,而這些內容都是經過「加密的」,每次請求都是不同的,這樣就導致了很多傳統的爬蟲失效。
  • Python爬蟲學到什麼程度就可以去找工作了?
    有朋友在群裡和大家討論,問的最多的問題就是,python 爬蟲學到什麼程度可以去找工作了,關於這點,和大家分享下我的理解。去招聘網上看看需求都有哪些,直接做個拉勾網爬蟲(有需要的私信)出結果了:仔細看看,我們可以得出以下幾點:1、 python 不是唯一可以做爬蟲的,很多語言都可以,
  • 有關於用了代理IP仍能被反爬蟲的緣由
    現如今,為了能更好地解決網絡平臺反爬蟲機制,諸多用戶都是會採用代理IP,不僅可以確保數據信息的正常爬取,還能夠提升工作效率。但是最近有很多網絡爬蟲用戶反映,在採用代理IP後,依然會遭受網絡平臺的反爬蟲機制的限制。因此為什麼採用代理IP後依然會被反爬蟲呢?
  • 網站反爬蟲常見方法
    網站為了正常運營,通常會設置各種反爬機制,讓爬蟲知難而退。今天神龍代理IP就給大家盤點一下網站常見的反爬蟲機制。網站反爬蟲常見方法1.通過UA判定UA即User Agent,它是請求瀏覽器的身份標誌。反爬蟲機制通過判定訪問請求的頭部中沒有帶UA來識別爬蟲,這種判定方法很低級,通常不會將其作為唯一的判定標準,因為反反爬蟲非常容易,隨機數UA即可針對。2.通過Cookie判定Cookie就是指會員制的帳號密碼登錄驗證,通過分辨這一個帳號在短期內內爬取頻次來判定。這種方法的反反爬蟲也很費勁,需選用多帳戶的方法來爬取。
  • 淺談IP代理的種類和區別
    現如今許多與網絡相關行業或從事網際網路工作的人群常常會在手機或電腦設備中使用IP代理工具來輔助其辦公,那它的作用是什麼呢?為什麼需要使用它來上網,因為網絡的設定是尤為複雜的,經常性以一同IP位址頻繁訪問某一網頁或相同IP位址登錄操作多個帳號,而導致其當前自身IP位址受限或IP被封的情況,此時就需要採用IP代理技術來獲取到新的IP位址進行網絡訪問,規避掉因封IP導致的網絡無法正常使用的情況,而在這其中IP代理又被細分為以下幾類,下面小編就談談它的種類和區別。
  • 網絡爬蟲作用有哪些?如何構建網絡爬蟲?
    而網絡爬蟲則是數據採集的主要方法。下面具體為大家介紹網絡爬蟲作用有哪些?如何構建網絡爬蟲?什麼是網絡爬蟲?網絡爬蟲是一種網際網路機器人,它通過爬取網際網路上網站的內容來工作。它是用計算機語言編寫的程序或腳本,用於自動從Internet上獲取任何信息或數據。機器人掃描並抓取每個所需頁面上的某些信息,直到處理完所有能正常打開的頁面。
  • Python爬蟲從入門到精通只需要三個月
    為什麼要學習python爬蟲?隨著了解爬行動物學習的人越來越多,就業需求也越來越需要這一塊的工作人員。在一方面,網際網路可以得到越來越多的數據。在另一方面,就像Python程式語言提供了越來越多的優秀的工具,允許爬蟲簡單,使用方便。我們使用爬蟲可以得到很多數據值。
  • 學習爬蟲思路分析
    前段時間可能大家被各大新聞爆出眾多爬蟲工程師程序猿被抓,且不知道犯了什麼罪;大家心中產生了疑問,那學爬蟲的意義到底為何呢,給大家插入一個連結是中華人民共和國國家網際網路信息辦公司的針對網絡爬蟲的法律規制(http://www.cac.gov.cn/2019-06/16/c_1124630015.htm)詳細閱讀,爬蟲並不違法,看你將他用在何處。