目錄
- 通訊協(xié)議
? 端口
? 通訊協(xié)議 - 網(wǎng)絡(luò)模型
- 爬蟲介紹
? 什么是爬蟲
? 爬蟲的分類 - 幾個(gè)概念
? GET和POST
? URL的組成
? User-Agent 用戶代理
? Referer
? 狀態(tài)碼 - 抓包工具
1.通訊協(xié)議
1.1 端口
數(shù)據(jù)通訊分幾步? e.g.用小a的QQ找小b的QQ
- 1. 找到對(duì)方ip谊娇。
- 2. 數(shù)據(jù)要發(fā)送到對(duì)方指定的應(yīng)用程序上(e.g.QQ)棍厂。為了標(biāo)識(shí)這些應(yīng)用程序,所以給這些網(wǎng)絡(luò)應(yīng)用程序都用數(shù)字進(jìn)行了標(biāo)識(shí)溪烤。為了方便稱呼這個(gè)數(shù)字,叫做端口匀伏。這里的端口 我們一般都叫做 '邏輯端口'恤溶。
- 3. 定義通訊規(guī)則。這個(gè)通訊規(guī)則我們一般稱之為協(xié)議。
1.2 通訊協(xié)議
- 國際組織定義了通用的通信協(xié)議 TCP/IP協(xié)議。
- 協(xié)議:計(jì)算機(jī)通信網(wǎng)絡(luò)中兩臺(tái)計(jì)算機(jī)之間進(jìn)行通信所必須共同遵守的規(guī)定或規(guī)則油讯。
- HTTP又叫做超文本傳輸協(xié)議(是一種通信協(xié)議)HTTP 端口是 80
2. 網(wǎng)絡(luò)模型
后期更新了新的參考模型 TCP/IP參考模型
2.1 HTTPS是什么呢?
- https=http+ssl延欠,顧名思義陌兑,https是在http的基礎(chǔ)上加上了SSL保護(hù)殼,信息的加密過程就是在SSL中完成的由捎。
- https兔综,是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版隅俘。即HTTP下加入SSL層邻奠,HTTPS的安全基礎(chǔ)是SSL。
2.2 SSL怎么理解为居?
- SSL也是一個(gè)協(xié)議主要用于web的安全傳輸協(xié)議。
3. 爬蟲介紹
3.1 什么是爬蟲杀狡?
- 簡單一句話就是代替人去模擬瀏覽器進(jìn)行網(wǎng)頁操作
3.2 為什么需要爬蟲蒙畴?
- 為其他程序提供數(shù)據(jù)源 如搜索引擎(百度、Google等)呜象、數(shù)據(jù)分析膳凝、大數(shù)據(jù)等等
3.3 企業(yè)獲取數(shù)據(jù)的方式?
- 1.公司自有的數(shù)據(jù)
- 2.第三方平臺(tái)購買的數(shù)據(jù) (百度指數(shù)、數(shù)據(jù)堂恭陡、貴陽大數(shù)據(jù)交易所)
- 3.爬蟲爬取的數(shù)據(jù)
3.4 Python 做爬蟲的優(yōu)勢
2010 PC端的互聯(lián)網(wǎng)->2015 移動(dòng)互聯(lián)網(wǎng)-> 大數(shù)據(jù)的互聯(lián)網(wǎng)時(shí)代(現(xiàn)在進(jìn)行時(shí))->人工智能(將來時(shí))
- PHP : 對(duì)多線程蹬音、異步支持不太好
- Java : 代碼量大,代碼笨重
- C/C++ : 代碼量大休玩,難以編寫
- Python : 支持模塊多著淆、代碼簡介劫狠、開發(fā)效率高 (scrapy框架)
3.5 爬蟲的分類
- 通用網(wǎng)絡(luò)爬蟲 例如 baidu google yahu
方法一:網(wǎng)頁后面加/robots.txt,例如百度 可以見到所用的user-agent,還有不允許爬取的目錄-->都遵循robots協(xié)議
方法二:點(diǎn)擊隨便一個(gè)搜索結(jié)果的”了解詳情”-->百度搜索資源平臺(tái)
- 聚焦網(wǎng)絡(luò)爬蟲: 根據(jù)既定的目標(biāo)有選擇的抓取某一特定主題內(nèi)容
- 增量式網(wǎng)絡(luò)爬蟲: 指對(duì)下載網(wǎng)頁采取增量式的更新和只爬行新產(chǎn)生的或者已經(jīng)發(fā)生變化的網(wǎng)頁爬蟲
- 深層網(wǎng)絡(luò)爬蟲: 指那些大部分內(nèi)容不能通過靜態(tài)鏈接獲取的永部、隱藏在搜索表單后的独泞,只有用戶提交一些關(guān)鍵詞才能獲得的web頁面,例如 用戶登錄注冊(cè)才能訪問的頁面苔埋。
4. 幾個(gè)概念
4.1 GET和POST
-
GET : 查詢參數(shù)都會(huì)在URL上顯示出來懦砂。從服務(wù)器獲取數(shù)據(jù)&不會(huì)對(duì)服務(wù)器產(chǎn)生任何影響。
image.png
OR
image.png
上例中能看到關(guān)鍵字(wd=后)變?yōu)?6禁制編碼
- POST : 查詢參數(shù)和需要提交數(shù)據(jù)是隱藏在Form表單里的,不會(huì)在URL地址上顯示出來组橄。<--會(huì)對(duì)服務(wù)器資源產(chǎn)生影響
image.png
4.2 URL組成部分
- URL: 統(tǒng)一資源定位符
例子:https://new.qq.com/omn/TWF20200/TWF2020032502924000.html - https: 協(xié)議
- new.qq.com: 主機(jī)名可以將主機(jī)理解為一臺(tái)名叫 news.qq.com 的機(jī)器荞膘。這臺(tái)主機(jī)在 qq.com 域名下
- port 端口號(hào): 80 /new.qq.com 在他的后面有個(gè) :80 可以省略
- TWF20200/TWF2020032502924000.html 訪問資源的路徑
-
#anchor: 錨點(diǎn)用前端在做頁面定位的
image.png
注意 : 在瀏覽器請(qǐng)求一個(gè)url,瀏覽器會(huì)對(duì)這個(gè)url進(jìn)行一個(gè)編碼。(除英文字母玉工、數(shù)字和部分標(biāo)識(shí)其他的全部使用% 加 十六進(jìn)制碼進(jìn)行編碼)
- 例如 : https://tieba.baidu.com/f?ie=utf-8&kw=%E6%B5%B7%E8%B4%BC%E7%8E%8B&fr=search
- %E6%B5%B7%E8%B4%BC%E7%8E%8B = 海賊王
4.3 User-Agent 用戶代理
- 作用:記錄用戶的瀏覽器衫画、操作系統(tǒng)等,為了讓用戶更好的獲取HTML頁面效果。
實(shí)操應(yīng)用:爬蟲時(shí)遇到反爬瓮栗,加上headers=user-agent
User-Agent:
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
- Mozilla Firefox:(Gecko內(nèi)核-->渲染頁面)
4.4 Refer
- 表明當(dāng)前這個(gè)請(qǐng)求是從哪個(gè)url過來的削罩。一般情況下可以用來做反爬的技術(shù)。e.g.當(dāng)爬取求職網(wǎng)頁信息時(shí)费奸,表明用戶是從主頁過來的弥激,不是機(jī)器人。
可以在network->request header中找到referer
4.5 狀態(tài)碼
- 200 : 請(qǐng)求成功
-
301 : 永久重定向
image.png -
302 : 臨時(shí)重定向
image.png
- 403 : 服務(wù)器拒絕請(qǐng)求
- 404 : 請(qǐng)求失敗(服務(wù)器無法根據(jù)客戶端的請(qǐng)求找到資源(網(wǎng)頁))
- 500 : 服務(wù)器內(nèi)部請(qǐng)求
5. 抓包工具
-
Elements : 元素愿阐。網(wǎng)頁源代碼微服,提取數(shù)據(jù)和分析數(shù)據(jù)(有些數(shù)據(jù)是經(jīng)過特殊處理的所以并不是都是準(zhǔn)確的)
image.png Console : 控制臺(tái) (打印信息)
和PyCharm一樣Sources : 信息來源 (整個(gè)網(wǎng)站加載的文件,包括網(wǎng)頁源代碼)
但是這是網(wǎng)頁第一遍的請(qǐng)求->空架子->不能收集到動(dòng)態(tài)信息e.g.招聘網(wǎng)上具體職位信息缨历。NetWork : 網(wǎng)絡(luò)工作(信息抓包) 能夠看到很多的網(wǎng)頁請(qǐng)求
反爬技巧:1. 加上headers= user-agent 2. 加上refer