01 爬蟲的基本介紹

2021-10-10 07:54:42 字數 2200 閱讀 9371

⽹絡爬⾍,也叫⽹絡蜘蛛,就是⽤來⾃動瀏覽⻚⾯並從中提取內容的⽹絡機器⼈。

語言分類

系統結構和實現技術分類

通用爬蟲侷限性:

聚焦爬蟲,是"面向特定主題需求"的一種網路爬蟲程式,它與通用搜尋引擎爬蟲的區別在於: 聚焦爬蟲在實施網頁抓取時會對內容進行處理篩選,盡量保證只抓取與需求相關的網頁資訊。

封useragent(作業系統資訊,瀏覽器版本資訊。。。)

很多的爬蟲請求頭就是預設的一些很明顯的爬蟲頭python-requests/2.18.4,諸如此類,當運維人員發現攜帶有這類headers的資料報,直接拒絕訪問,返回403錯誤

基於使用者行為的反爬蟲

網頁的運維人員通過分析日誌發現最近某乙個ip訪問量特別特別大,某一段時間內訪問了無數次的網頁,則運維人員判斷此種訪問行為並非正常人的行為,於是直接在伺服器上**了此人ip。

動態頁面的反爬蟲

網頁開發者將重要資訊放在網頁中但不寫入html標籤中,而瀏覽器會自動渲染標籤中的js**將資訊展現在瀏覽器當中,而爬蟲是不具備執行js**的能力,所以無法將js事件產生的資訊讀取出來

封cookies

驗證碼驗證

當某一使用者訪問次數過多後,就自動讓請求跳轉到乙個驗證碼頁面,只有在輸入正確的驗證碼之後才能繼續訪問**

referer欄位反爬

請求頭字段裡需要攜帶cookie、user-agent、referer等多個字段共同請求才可以獲取到資料,否則不返回資料。

抓包工具的介紹:

比較常用的抓包工具大概有4個,主要用作互補,配合使用基本所有平台、所有抓包需求都能滿足:

客戶端像web伺服器傳送http(s)請求時,請求會先經過**fiddler**伺服器。

fiddler**伺服器擷取客戶端的請求報文,再**到web伺服器,**之前可以做一些請求報文引數修改的操作。

web伺服器處理完請求以後返回響應報文,fiddler**伺服器會擷取web伺服器的響應報文。

fiddler處理完響應報文後再返回給客戶端。

幾個工具間的使用關係:

如果是windows平台,使用fidder

如果是mac平台,使用charles

如果是linux平台(手機或後台),使用tcpdump

如果抓非http(s)協議的包,如tcp包,則使用wireshark

抓包原理

客戶端像web伺服器傳送http(s)請求時,請求會先經過**fiddler**伺服器。

fiddler**伺服器擷取客戶端的請求報文,再**到web伺服器,**之前可以做一些請求報文引數修改的操作。

web伺服器處理完請求以後返回響應報文,fiddler**伺服器會擷取web伺服器的響應報文。

fiddler處理完響應報文後再返回給客戶端。

http和https區別?

明文傳輸,埠號80

http協議(hypertext transfer protocol,超文字傳輸協議):是一種發布和接收 html頁面的方法。

加密傳輸,埠號443

https(hypertext transfer protocol over secure socket layer)簡單講是http的安全版,在http下加入ssl層。 https = http+ssl

ssl(secure sockets layer 安全 套接層)主要用於web的安全傳輸協議,在傳輸層對網路連線進行加密,保障在internet上資料傳輸的安全。

ssl報錯解決方法?

注意:如果報錯ssl,那麼解決方案是

瀏覽器傳送http請求的過程:

url = ''

response = urllib.request.urlopen(url=url)

print(response.read().decode('utf-8'))

python爬蟲學習 01爬蟲介紹

前戲 1.你是否在節假日出行高峰的時候,想快速搶購火車票成功 2.你是否在網上購物的時候,想快速且精準的定位到口碑質量最好的商品 什麼是爬蟲 通過編寫程式,模擬瀏覽器上網,然後讓其去網際網路上抓取資料的過程。爬蟲的價值 實際應用 就業 爬蟲究竟是合法還是違法的?如何在使用編寫爬蟲的過程中避免進入局子...

01 爬蟲的基本概念

爬蟲網路爬蟲 又被稱為網頁蜘蛛,網路機械人 就是模擬客戶端傳送網路請求,接收請求響應,一種按照一定的規則,自動地抓取網際網路資訊的程式.原則上,只要是瀏覽器能做的事情,爬蟲都能做.爬蟲能做什麼 爬蟲的分類 爬蟲獲取的資料的用途 進行資料分析或者是機器學習相關的專案 爬蟲的流程 通用搜尋引擎的侷限性 ...

爬蟲xpath介紹以及基本用法

import requests from lxml import etree text html etree.html text 將上述字串解析為html文件,構造xpath的解析物件 result etree.tostring html 這裡是將html文件進行完成的修正 print result...