學習爬蟲必須學的基礎知識
1.資料的來源
1)使用者自行產生
2)去第三方的公司購買資料
3)去免費的資料網站下載資料
4)人工收集資料
5)爬蟲獲取
2.什麼是爬蟲
網路爬蟲(又被稱為網頁蜘蛛,網路機器人)就是模擬瀏覽器傳送網路請求,接收請求響應,一種按照一定的規則,自動地抓取網際網路資訊的程式。原則上,只要是瀏覽器(客戶端)能做的事情,爬蟲都能夠做
3.爬蟲的分類
根據被爬網站的數量的不同,我們把爬蟲分為:
通用爬蟲 :通常指搜尋引擎的爬蟲()
聚焦爬蟲 :針對特定網站的爬蟲
4 . 爬蟲的流程
1. url
2. 傳送請求獲取響應
3. 對響應進行提取
a. 如果提取的是url,就重複步驟2
b. 如果提取的是資料,就儲存入庫
5. 大象裝冰箱分幾步
外匯分析師
爬蟲爬取資料的流程和將大象裝進冰箱的流程相似:
class 冰箱
屬性:門 =
東西s = [大象,]
def open門
class 大象
1.冰箱門開啟
冰箱a = 冰箱()
冰箱a.open門()
2.大象放進冰箱
具體再去完善冰箱的大小以及大象放進去的方法
3.冰箱們關上
冰箱a.close門()
6.robots協議
Robots協議:網站透過Robots協議告訴搜尋引擎哪些頁面可以抓取,哪些頁面不能抓取,但它僅僅是網際網路中的一般約定,可以忽略,例如:()
7.http,和https的概念
複習的必要性:在傳送請求,獲取響應的過程中 就是傳送http或https的請求,獲取http或https的響應
HTTP:
超文字傳輸協議,預設埠號:80
HTTPS:
HTTP + SSL(安全套接字層),即帶有安全套接字層的超本文傳輸協議,預設埠號:443
HTTPS比HTTP更安全,但是效能更低
8.瀏覽器的工作原理
http請求的過程
1)瀏覽器先向位址列中的url發起請求,並獲取相應
2)在返回的響應內容(html)中,會帶有css、js、圖片等url地址,以及ajax程式碼,瀏覽器按照響應內容中的順序依次傳送其他的請求,並獲取相應的響應
3)瀏覽器每獲取一個響應就對展示出的結果進行新增(載入),js,css等內容會修改頁面的內容,js也可以重新傳送請求,獲取響應
4)從獲取第一個響應並在瀏覽器中展示,直到最終獲取全部響應,並在展示的結果中新增內容或修改————這個過程叫做瀏覽器的渲染
注意:
但是在爬蟲中,爬蟲只會請求url地址,對應的拿到url地址對應的響應(該響應的內容可以是html,css,js,圖片等),瀏覽器渲染出來的頁面和爬蟲請求的頁面很多時候並不一樣,所以在爬蟲中,需要以url地址對應的響應為準來進行資料的提取
理解瀏覽器的工作原理之後,要知道一下倆點:
1)多次響應的結果 就意味著 有多次請求(瀏覽器最終顯示的結果是由多次請求對應的多次響應共同渲染的結果)
2)爬蟲是以傳送一次請求對應的響應為準,來提取資料2.爬蟲是以傳送一次請求對應的響應為準,來提取資料
9. 爬蟲關注的常見請求頭
User-Agent 使用者代理
Referer 麵包屑
Cookie
http常見請求頭:
Host (主機和埠號)
Connection (連結型別)
Upgrade-Insecure-Requests (升級為HTTPS請求)
User-Agent (瀏覽器名稱)
Accept (傳輸檔案型別)
Referer (頁面跳轉處)
Accept-Encoding(檔案編解碼格式)
Cookie (Cookie)
x-requested-with :XMLHttpRequest (表示該請求是Ajax非同步請求)
10. 爬蟲關注的響應頭
Set-Cookie 後端一次向客戶端set一條cookie
在響應中 可以set多次cookie;客戶端最多儲存20條cookie
11.響應狀態碼
200:成功
302:臨時轉移至新的url
307:臨時轉移至新的url
404:找不到該頁面
500:伺服器內部錯誤
503:服務不可用,一般是被反爬
12.字串相關的複習
python3中兩種字串型別:
str : unicode的呈現形式
bytes :位元組型別,網際網路上資料的都是以二進位制的方式(位元組型別)傳輸的
關於bytes的擴充閱讀:
UTF-8是Unicode的實現方式之一
str和bytes型別的互相轉換:
string --> bytes
encode()
bytestring -->str
decode(‘utf8’) # ascii gbk gb2312 iso-8859-1
編碼方式解碼方式必須一樣,否則就會出現亂碼
‘你好嗎’.encode()–> b’你好嗎’
b’你好嗎’.decode(‘ascii’) --> 亂碼!
b’你好嗎’.decode(‘utf8’) --> 正常顯示
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2673157/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 零基礎入門學習Python爬蟲必備的知識點!Python爬蟲
- 逆向爬蟲知識學習爬蟲
- 爬蟲基礎知識爬蟲
- 爬蟲必須得會的預備知識爬蟲
- IPIDEA乾貨|學習爬蟲必需瞭解的基礎知識Idea爬蟲
- 學 Java 網路爬蟲,需要哪些基礎知識?Java爬蟲
- 學習 Laravel 必須理解的知識點Laravel
- Python爬蟲需要學哪些東西?這些知識點必須掌握!Python爬蟲
- 學習網路BGP必備基礎知識
- 爬蟲必學知識之正規表示式上篇爬蟲
- 你必須知道的Java基礎知識Java
- 零基礎如何學好Python?Python有哪些必須學的知識?Python
- 【ASM學習】基礎知識ASM
- Python分散式爬蟲(三) - 爬蟲基礎知識Python分散式爬蟲
- Python爬蟲之路-爬蟲基礎知識(理論)Python爬蟲
- Java培訓零基礎學員必須要知道的知識點Java
- python 爬蟲基礎知識一Python爬蟲
- 外貿小白必須掌握的基礎知識
- python基礎必學的語法知識Python
- 零基礎如何學好大資料?必備需要學習知識大資料
- Android基礎知識學習Android
- 基礎知識學習筆記筆記
- JavaSE基礎知識學習-----集合Java
- WebAPI基礎知識學習(1)WebAPI
- 【ASM學習】ASM基礎知識ASM
- 【0基礎學爬蟲】爬蟲基礎之資料儲存爬蟲
- 【0基礎學爬蟲】爬蟲基礎之檔案儲存爬蟲
- Python爬蟲之Scrapy學習(基礎篇)Python爬蟲
- Python 基礎學習 網路小爬蟲Python爬蟲
- 前端學習,除了掌握學習路線之外,必須要注意的知識要點!前端
- 【0基礎學爬蟲】爬蟲基礎之自動化工具 Pyppeteer 的使用爬蟲
- 【0基礎學爬蟲】爬蟲基礎之網路請求庫的使用爬蟲
- 爬蟲學習之基於Scrapy的網路爬蟲爬蟲
- JavaSE基礎知識學習—–多型Java多型
- JavaSE基礎學習知識整理大全Java
- RxJava 學習筆記 -- 基礎知識RxJava筆記
- JVM學習之JVM基礎知識JVM
- 怎麼學習基礎知識啊?