Python 爬蟲基礎

2022-05-07 07:15:09 字數 3372 閱讀 4094

目錄

#安裝虛擬環境(window下加-win,蘋果系統不需要加)

#常用命令

mkvirtualenv pmz(建立虛擬環境的名字) #建立虛擬環境成功後會自動切換到環境下

workon envname(envname(切換虛擬環境的名字)) #切換到虛擬環境

pip list #檢視虛擬安裝所有的包

deactivate #退出虛擬環境

rmvirtualenv pmz(pmz(刪除虛擬環境)) #刪除虛擬環境

lsvirtualenv #列出所有已建立的虛擬環境

mkvirtualenv--python--c: ..python.exe envname #指定python直譯器建立虛擬環境

爬蟲, 又稱網頁蜘蛛或網路機械人. 

# 說明:

1.模擬: 用爬蟲程式偽裝出人的行為, 避免被服務識別為爬蟲程式

3.自動化: 資料量較小時可以人工獲取資料, 但往往在公司中爬取的資料量在百萬條, 千萬條級別的, 所以要程式 自動化獲取資料.

cpython - ipython

#通用爬蟲----只是爬蟲,為搜尋引擎提供檢索服務

1.起始url

2.url佇列 --------爬取資料

#設計思路

1.確定url,發起請求,獲取響應

2.資料解析:re,正則,xpath,bs4,pyquery

3.資料持久化: 資料庫mysql redisa,mongodb

(1): 通用爬蟲-----只是爬蟲,為搜尋引擎提供檢索服務:搜尋引擎

# 功能: 訪問網頁 -> 抓取資料 -> 資料處理 -> 提供檢索服務

# 工作流:

1.給定乙個起始url, 存於爬取佇列中

2.爬蟲程式從佇列中取出url, 爬取資料

3.解析爬取資料, 獲取網頁內的所有url, 放入爬取佇列

4.重複第二個步驟

1.主動將url提交給搜尋引擎(

2.在其他熱門**設定友情了解

# **排名(seo):

1.根據pagerank值進行排名(流量, 點選率)

# 缺點:

1.抓取的內容多數無用

2.無法精確獲取資料

# 協議: robots協議 --> 約定哪些內容允許哪些爬蟲抓取 (約束通用爬蟲和聚焦爬蟲)

1.無需遵守, 該協議適用於通用爬蟲, 而我們寫的是聚焦爬蟲

2.檢視方法: **url/robots.txt, 如

(2): 聚焦爬蟲-----聚焦爬蟲

# 概念:

聚焦爬蟲指針對某一領域根據特定要求實現的爬蟲程式, 抓取需要的資料(垂直領域爬取)

# 設計思路:

(1).確定爬取的url, 模擬瀏覽器請伺服器傳送請求

(2).獲取響應資料並進行資料解析 ---re,正則,[xpath]推薦,bs4,pyquery

(3).將目標資料持久化到本地----- .mysql,mongodb,redis

osi七層模型

7.應用層 6.表示層 5.會話層 4.傳輸層 3.網路層 2.資料鏈路層 1.物理層 (從下往上數)

tcp 五層協議

1.應用層:http/https/fip/ssh

2.傳輸層:tcp/udp

3.網路層: ip協議

4.資料鏈路層:apr協議

5.物理層:乙太網協議

# http協議: 明文傳輸, 埠80 

- http協議, 全稱為hyper text transfer protocol, 即超文字傳輸協議.

- http協議是用於從網路傳輸超文字資料到本地瀏覽器的傳送協議, 它能保證高效而準確地傳送超文字文件.

- 目前廣泛使用的是http 1.1版本

# https協議: 加密傳輸, 埠443

- https全稱是hyper text transfer protocol over secure socket layer, 是以安全為目標的 http通道. https協議實質是http的安全版, 即http下加入ssl安全套接層, 簡稱https.

- https的安全體現在ssl的加密行為, 即通過https協議傳輸的資料都是經過ssl加密的

- https的作用:

1.建立乙個資訊保安的通道來保證資料傳輸的安全

# http與https協議的區別:(背下來)

1)、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

2)、http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。

3)、http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。

4)、http的連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

# tcp與udp 

1.tcp協議:是一種面向連線的, 可靠的, 基於位元組流的傳輸層通訊協議

1).有序性: 資料報編號, 判斷資料報的正確次序

2).正確性: 使用checksum函式檢查資料報是否損壞, 傳送接收時都會計算校驗和

3).可靠性: 傳送端有超時重發, 並由確認機制識別錯誤和資料的丟失

4).可控性: 滑動視窗協議與擁塞控制演算法控制資料報的傳送速度

2.udp協議: 使用者資料報協議, 面向無連線的傳輸層協議, 傳輸不可靠.

1).無連線, 資料可能丟失或損壞

2).報文小, 傳輸速度快

3).吞吐量大的網路傳輸, 可以在一定程度上承受資料丟失

# arp協議: 通過ip獲取目標計算機mac位址的協議(通過ip找mac)

1.ftp: file transfer protocol的縮寫, 即檔案傳輸協議. 埠:21 

2.ssh: secure shell的縮寫, 用於遠端登入會話. 埠:22

3.mysql: 關係型資料庫, 埠:3306

4.mongodb: 非關係型資料庫, 埠:27017

5.redis: 非關係型資料庫, 埠:6379

# web端

1. python3.6

2. pycharm

3. google chrome

#抓包工具

fiddler抓包工具

python爬蟲基礎

一 什麼是爬蟲 通常爬蟲是從某個 的某個頁面開始,爬取這個頁面的內容,找到網頁中的其他鏈結位址,然後從這個位址爬到下乙個頁面,這樣一直不停的爬下去,進去批量的抓取資訊。那麼,我們可以看出網路爬蟲就是乙個不停爬取網頁抓取資訊的程式。二 爬蟲的基本流程 1,發起請求 向目標站點傳送乙個requests請...

python爬蟲基礎

爬蟲 爬蟲,全稱網路爬蟲,指按照一定的規則 模擬瀏覽器人工登入網頁的方式 自動抓取網路資訊資料的程式。簡單的說,就是將瀏覽器上網所能看到頁面上的內容通過爬蟲程式自動獲取下來,並進行儲存。爬蟲其實就是乙個程式自動收集獲取指定網路資料資訊的過程,網路資料資訊量十分龐大,人工獲取無法完成,這時就需要爬蟲來...

python 爬蟲基礎

urllib 或 requests re 01 r 大圖的 pat re.compile re 01 建立乙個正規表示式的模板 imgurls re.findall pat,data 開始匹配 print len imgurls imgurls i 0 for imgurl in imgurls i...