都說(shuō)現(xiàn)在是"大數(shù)據(jù)時(shí)代",那數(shù)據(jù)從何而來(lái)?
- 企業(yè)產(chǎn)生的數(shù)據(jù):大型的公司有大量的用戶驹愚,每天都會(huì)產(chǎn)生大量的數(shù)據(jù),
大公司會(huì)對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和歸類,中小型的公司也開(kāi)始收集和整理數(shù)據(jù)
百度指數(shù)劣纲,新浪指數(shù)逢捺,BAT騰訊瀏覽指數(shù)
- 數(shù)據(jù)平臺(tái):通過(guò)各行各業(yè)業(yè)的數(shù)據(jù)匯總,會(huì)花費(fèi)大量的人力物力去收集數(shù)據(jù)
數(shù)據(jù)堂,貴陽(yáng)數(shù)據(jù)平臺(tái)
3.政府/機(jī)構(gòu):是由個(gè)地方政府機(jī)關(guān)單位逐級(jí)的上報(bào),最終由國(guó)家匯總
中華人民共和國(guó)國(guó)家統(tǒng)計(jì)局?jǐn)?shù)據(jù)
4.數(shù)據(jù)管理咨詢公司:通過(guò)大量的人力整理個(gè)各行各業(yè)的數(shù)據(jù),會(huì)和其他公司合作
和專家合作成圣大量的數(shù)據(jù)
麥肯西
挨森哲
艾瑞咨詢
5.爬蟲(chóng):如果以上的數(shù)據(jù)平臺(tái)不能夠滿足我們的數(shù)據(jù)需求的時(shí)候,或者說(shuō)數(shù)據(jù)數(shù)據(jù)的價(jià)格非常敖貴,這時(shí)我們就可以通過(guò)爬蟲(chóng)去獲取數(shù)據(jù)
什么是爬蟲(chóng)網(wǎng)絡(luò)爬蟲(chóng)癞季?
網(wǎng)絡(luò)爬蟲(chóng)(又被稱為網(wǎng)頁(yè)蜘蛛劫瞳,網(wǎng)絡(luò)機(jī)器人), 是一種按照一定的規(guī)則,自動(dòng)地抓取萬(wàn)維網(wǎng)信息的程序或者腳本绷柒。
通俗的講: 就是模擬客戶端發(fā)起網(wǎng)絡(luò)請(qǐng)求志于,接收請(qǐng)求的響應(yīng),按照一定的規(guī)則废睦,自動(dòng)的抓取互聯(lián)網(wǎng)信息的程序伺绽。
理論上:通過(guò)瀏覽器看到的數(shù)據(jù),我們一般都是可以獲取到的
爬蟲(chóng)有什么作用:
搜索引擎
商品比價(jià)(慧慧購(gòu)物助手)
知乎的數(shù)據(jù)分析平臺(tái)(知乎專欄,數(shù)據(jù)冰山)
如何去寫(xiě)一個(gè)爬蟲(chóng):
- 網(wǎng)頁(yè)的三大特征:
- 每一個(gè)網(wǎng)頁(yè)都有一個(gè)唯一的url(統(tǒng)一資源定位符),來(lái)進(jìn)行定位
- 網(wǎng)頁(yè)都是通過(guò)HTML(超文本)文本展示的
- 所有的網(wǎng)頁(yè)都是通過(guò)HTTP<超文本傳輸協(xié)議>(HTTPS)協(xié)議來(lái)傳輸?shù)?/li>
- 爬蟲(chóng)的流程:
1.分析網(wǎng)站,得到目標(biāo)url
2.根據(jù)url,發(fā)起請(qǐng)求,獲取頁(yè)面的HTML源碼
3.從頁(yè)面源碼中提取數(shù)據(jù)
a.提取到目標(biāo)數(shù)據(jù),做數(shù)據(jù)的篩選和持久化存儲(chǔ)
b.從頁(yè)面中提取到新的url地址,繼續(xù)執(zhí)行第二部操作
4.爬蟲(chóng)結(jié)束:所有的目標(biāo)url都提取完畢,并且得到數(shù)據(jù)了,再也沒(méi)有其他請(qǐng)求任務(wù)了,這是意味著爬蟲(chóng)結(jié)束
關(guān)于Python爬蟲(chóng)嗜湃,我們需要學(xué)習(xí)掌握的基本知識(shí)有:
Python基礎(chǔ)語(yǔ)法學(xué)習(xí)(基礎(chǔ)知識(shí))
靜態(tài)頁(yè)面奈应,動(dòng)態(tài)頁(yè)面HTML頁(yè)面源碼的獲取(數(shù)據(jù)抓裙号)
HTML頁(yè)面的(非結(jié)構(gòu)化)數(shù)據(jù)提取杖挣,結(jié)構(gòu)化數(shù)據(jù)的提取(數(shù)據(jù)提雀斩浮)
數(shù)據(jù)提取的持久化(文本惩妇、數(shù)據(jù)庫(kù))
Scrapy框架以及scrapy-redis分布式策略(第三方框架)
爬蟲(chóng)(Spider)株汉、反爬蟲(chóng)(Anti-Spider)、反反爬蟲(chóng)(Anti-Anti-Spider)之間的斗爭(zhēng)....
爬蟲(chóng)分類
- 通用爬蟲(chóng) 聚焦爬蟲(chóng)
- 通用爬蟲(chóng):是搜索引擎的重要組成部分
目的:竟可能的將所有的互聯(lián)網(wǎng)上的網(wǎng)頁(yè)下載到本地,經(jīng)過(guò)預(yù)處理(去噪,分詞,去廣告),最終將數(shù)據(jù)存儲(chǔ)到本地,做一個(gè)鏡像備份,形成一個(gè)檢索系統(tǒng)
通用爬蟲(chóng)抓取網(wǎng)頁(yè)的流程:
1.選取一部分的url作為種子url,將這些url放入到帶爬取的任務(wù)隊(duì)列里面
2.從帶爬取的任務(wù)隊(duì)列中取出url,發(fā)起請(qǐng)求,將獲取到的網(wǎng)頁(yè)源碼存儲(chǔ)到本地, 并將已經(jīng)爬取過(guò)的url,放入已爬取隊(duì)列中
3.從已爬取url的響應(yīng)結(jié)果中,分析提取其他的url地址,繼續(xù)添加到待爬取隊(duì)列中 ,之后就是不斷的循環(huán),直到所有的url都提取完畢
通用爬蟲(chóng)中種子url如何獲取
1.通過(guò)網(wǎng)站提交自己的網(wǎng)站地址(https://ziyuan.baidu.com/linksubmit/url)
2.搜索引擎會(huì)和DNS服務(wù)商合作,拿到最新的網(wǎng)站地址(DNS服務(wù):將我們的域轉(zhuǎn)換為對(duì)應(yīng)ip的一種技術(shù))
3.網(wǎng)站中包含的其他外鏈
通用爬蟲(chóng)的整體流程:數(shù)據(jù)的獲扔旄健->預(yù)處理(分詞,去噪,去廣告...)->存儲(chǔ)->提供檢索接口|排名(網(wǎng)站排名)
網(wǎng)站排名:
1)根據(jù)用戶的訪問(wèn)量,網(wǎng)站的流量越多郎逃,越靠前
2)競(jìng)價(jià)排名:誰(shuí)出價(jià)高,誰(shuí)排在前面
通用爬蟲(chóng)的缺點(diǎn):
⊥Ψ荨1)必須準(zhǔn)守robot協(xié)議:就是一個(gè)規(guī)范,告訴搜索引擎,哪些目錄下的資源允許爬蟲(chóng),
哪些目錄下的資源不允許爬取(https://www.taobao.com/robots.txt)
'User-agent':該項(xiàng)值用來(lái)表示是哪家的搜索引擎
'allow':允許被爬取的url
'disllow':不允許被爬取的url
2)搜索引擎返回的都是網(wǎng)頁(yè),并且返回的90%的都是無(wú)用的數(shù)據(jù)
3) 不能夠根據(jù)不同的用戶的需求或者鎖檢索結(jié)果返回不同的結(jié)果
4) 通用爬蟲(chóng)對(duì)于對(duì)媒體的文件不能夠獲取
- 聚焦爬蟲(chóng):聚焦爬蟲(chóng)是面向主題的爬蟲(chóng),再爬取數(shù)據(jù)的過(guò)程中會(huì)對(duì)數(shù)據(jù)進(jìn)行篩選
往往只會(huì)爬蟲(chóng)與需求相關(guān)的數(shù)據(jù)