網(wǎng)站的三大特性:
1. 每一個(gè)資源都有一個(gè)url(統(tǒng)一資源定位符),是唯一的
2. 每一個(gè)網(wǎng)頁(yè)都是使用HTML文本展示數(shù)據(jù)的
3. 通過(guò)http或https(超文本傳輸協(xié)議)测柠,去獲取和傳遞HTML源碼
如何實(shí)現(xiàn)一個(gè)爬蟲
1. 找到目標(biāo)url
2. 根據(jù)url發(fā)起請(qǐng)求
3. 解析響應(yīng)結(jié)果
1. 提取目標(biāo)數(shù)據(jù)
2. 如果存在新的url蜈块,進(jìn)一步提攘彰ā(會(huì)執(zhí)行1-3這個(gè)循環(huán))
4. 爬蟲結(jié)束:所有符合條件的url請(qǐng)求全部獲取完畢。
爬蟲分為兩類:
通用爬蟲:是瀏覽器的重要組成部分,將互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)下載到本地彪杉,做了一個(gè)本分
提取重要數(shù)據(jù)(過(guò)濾數(shù)據(jù)亩码,分詞,去廣告等等乾巧。句喜。。)步驟跟上面的介紹類似
搜索引擎的爬去的url通過(guò)什么方式獲取的沟于?咳胃?
1. 通過(guò)網(wǎng)站的外鏈
2. 通過(guò)網(wǎng)頁(yè)提交url
3. 各大搜索引擎公司也會(huì)和DNS服務(wù)商合作
DNS:將域名轉(zhuǎn)換成ip的技術(shù)
通用爬蟲的缺點(diǎn):
需要遵循robots協(xié)議
搜索引擎發(fā)揮的結(jié)果沒有很好的針對(duì)性,不能夠特殊的用戶群體返回對(duì)應(yīng)的數(shù)據(jù)
搜索引擎一般情況下獲取的是文本信息旷太,處理圖像展懈,音頻,視頻多媒體還是困難的供璧。
聚焦爬蟲:是面向主題的爬蟲(有需求產(chǎn)出的)存崖,是一種定向的爬蟲,在爬去網(wǎng)頁(yè)數(shù)據(jù)的時(shí)候睡毒,會(huì)對(duì)網(wǎng)頁(yè)篩選来惧,保證抓取相關(guān)徐數(shù)據(jù),以后更多的聚焦爬蟲
判斷頁(yè)面靜態(tài)或動(dòng)態(tài)
是否靜態(tài):進(jìn)入源碼搜索內(nèi)容有為靜
是否動(dòng)態(tài):結(jié)果不變不停的獲取數(shù)據(jù)(ajax)/ 源碼中沒有數(shù)據(jù)
找到數(shù)據(jù):進(jìn)入Network 中的XHR
Preview預(yù)覽?
可以使用selenium(獲取頁(yè)面源碼是經(jīng)過(guò)瀏覽器渲染后的最終結(jié)果)
請(qǐng)求頭:
User-Agent:模擬瀏覽器加載
Cookies:攜帶cookies第一可以維持回話演顾,告訴瀏覽器用戶身份信息
Referer:告訴瀏覽器供搀,當(dāng)前請(qǐng)求,是從哪個(gè)頁(yè)面發(fā)起的钠至。
urlopen參數(shù):
url : 設(shè)定目標(biāo)url
data=None:默認(rèn)為None表示是個(gè)get請(qǐng)求葛虐;如果不為None,表示一個(gè)post請(qǐng)求
timeout:指定超時(shí)時(shí)間
cafile=None:可以指定證書文件(一般情況下用不到這個(gè)參數(shù))
capath=None:指明整數(shù)路徑
cadefault=False:是否要使用默認(rèn)的證書
context=None:賦值則表示忽略來(lái)認(rèn)證的ssl證書