1.數(shù)據(jù)的來源
1)用戶自行產(chǎn)生
2)去第三方的公司購買數(shù)據(jù)
3)去免費的數(shù)據(jù)網(wǎng)站下載數(shù)據(jù)
4)人工收集數(shù)據(jù)
5)爬蟲獲取
2.什么是爬蟲
網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機器人)就是模擬瀏覽器發(fā)送網(wǎng)絡(luò)請求,接收請求響應,一種按照一定的規(guī)則,自動地抓取互聯(lián)網(wǎng)信息的程序。原則上,只要是瀏覽器(客戶端)能做的事情,爬蟲都能夠做
3.爬蟲的分類
根據(jù)被爬網(wǎng)站的數(shù)量的不同,我們把爬蟲分為:
通用爬蟲 :通常指搜索引擎的爬蟲(https://www.baidu.com)
聚焦爬蟲 :針對特定網(wǎng)站的爬蟲
4 . 爬蟲的流程
1. url
2. 發(fā)送請求獲取響應
3. 對響應進行提取
a. 如果提取的是url,就重復步驟2
b. 如果提取的是數(shù)據(jù),就保存入庫
5. 大象裝冰箱分幾步
外匯分析師/tupian/20230522/p
爬蟲爬取數(shù)據(jù)的流程和將大象裝進冰箱的流程相似:
class 冰箱
屬性:門 =
東西s = [大象,]
def open門
class 大象
1.冰箱門打開
冰箱a = 冰箱()
冰箱a.open門()
2.大象放進冰箱
具體再去完善冰箱的大小以及大象放進去的方法
3.冰箱們關(guān)上
冰箱a.close門()
6.robots協(xié)議
Robots協(xié)議:網(wǎng)站通過Robots協(xié)議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取,但它僅僅是互聯(lián)網(wǎng)中的一般約定,可以忽略,例如:(/tupian/20230522/error.html
7.http,和https的概念
復習的必要性:在發(fā)送請求,獲取響應的過程中 就是發(fā)送http或https的請求,獲取http或https的響應
HTTP:
超文本傳輸協(xié)議,默認端口號:80
HTTPS:
HTTP + SSL(安全套接字層),即帶有安全套接字層的超本文傳輸協(xié)議,默認端口號:443
HTTPS比HTTP更安全,但是性能更低
8.瀏覽器的工作原理
http請求的過程
1)瀏覽器先向地址欄中的url發(fā)起請求,并獲取相應
2)在返回的響應內(nèi)容(html)中,會帶有css、js、圖片等url地址,以及ajax代碼,瀏覽器按照響應內(nèi)容中的順序依次發(fā)送其他的請求,并獲取相應的響應
3)瀏覽器每獲取一個響應就對展示出的結(jié)果進行添加(加載),js,css等內(nèi)容會修改頁面的內(nèi)容,js也可以重新發(fā)送請求,獲取響應
4)從獲取第一個響應并在瀏覽器中展示,直到最終獲取全部響應,并在展示的結(jié)果中添加內(nèi)容或修改————這個過程叫做瀏覽器的渲染
注意:
但是在爬蟲中,爬蟲只會請求url地址,對應的拿到url地址對應的響應(該響應的內(nèi)容可以是html,css,js,圖片等),瀏覽器渲染出來的頁面和爬蟲請求的頁面很多時候并不一樣,所以在爬蟲中,需要以url地址對應的響應為準來進行數(shù)據(jù)的提取
理解瀏覽器的工作原理之后,要知道一下倆點:
1)多次響應的結(jié)果 就意味著 有多次請求(瀏覽器最終顯示的結(jié)果是由多次請求對應的多次響應共同渲染的結(jié)果)
2)爬蟲是以發(fā)送一次請求對應的響應為準,來提取數(shù)據(jù)2.爬蟲是以發(fā)送一次請求對應的響應為準,來提取數(shù)據(jù)
9. 爬蟲關(guān)注的常見請求頭
User-Agent 用戶代理
Referer 面包屑
Cookie
http常見請求頭:
Host (主機和端口號)
Connection (鏈接類型)
Upgrade-Insecure-Requests (升級為HTTPS請求)
User-Agent (瀏覽器名稱)
Accept (傳輸文件類型)
Referer (頁面跳轉(zhuǎn)處)
Accept-Encoding(文件編解碼格式)
Cookie (Cookie)
x-requested-with :XMLHttpRequest (表示該請求是Ajax異步請求)
10. 爬蟲關(guān)注的響應頭
Set-Cookie 后端一次向客戶端set一條cookie
在響應中 可以set多次cookie;客戶端最多保存20條cookie
11.響應狀態(tài)碼
200:成功
302:臨時轉(zhuǎn)移至新的url
307:臨時轉(zhuǎn)移至新的url
404:找不到該頁面
500:服務器內(nèi)部錯誤
503:服務不可用,一般是被反爬
12.字符串相關(guān)的復習
python3中兩種字符串類型:
str : unicode的呈現(xiàn)形式
bytes :字節(jié)類型,互聯(lián)網(wǎng)上數(shù)據(jù)的都是以二進制的方式(字節(jié)類型)傳輸?shù)?
關(guān)于bytes的拓展閱讀:https://segmentfault.com/a/1190000004450876
UTF-8是Unicode的實現(xiàn)方式之一
str和bytes類型的互相轉(zhuǎn)換:
string --> bytes
encode()
bytestring -->str
decode(‘utf8’) # ascii gbk gb2312 iso-8859-1
編碼方式解碼方式必須一樣,否則就會出現(xiàn)亂碼
‘你好嗎’.encode()–> b’你好嗎’
b’你好嗎’.decode(‘a(chǎn)scii’) --> 亂碼!
b’你好嗎’.decode(‘utf8’) --> 正常顯示
本文題目:學習爬蟲必須學的基礎(chǔ)知識-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://chinadenli.net/article44/cehcee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、標簽優(yōu)化、微信公眾號、用戶體驗、Google、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容