#爬蟲(chóng)最基本的步驟:
1.尋找目標(biāo)url,發(fā)起請(qǐng)求
2.獲取請(qǐng)求的響應(yīng)結(jié)果盖腿,分析相應(yīng)結(jié)果
3.從響應(yīng)結(jié)果中提取數(shù)據(jù)
a.第一部分布蔗,從網(wǎng)頁(yè)中提取的目標(biāo)數(shù)據(jù)
b.如果存在新的url地址管闷,則提取,繼續(xù)發(fā)起請(qǐng)求
爬蟲(chóng)結(jié)束:所有的目標(biāo)url全部請(qǐng)求完畢谍咆,爬蟲(chóng)結(jié)束
數(shù)據(jù)的用途:
1.可以爬取數(shù)據(jù)禾锤,寫(xiě)自己的網(wǎng)站
2.搜索引擎
3.購(gòu)物助手
4.日常數(shù)據(jù)的基本分析(知乎數(shù)據(jù)冰山專(zhuān)欄)
做爬蟲(chóng)并不只有python可以完成:
java php c/c++ switch ....
java:試python寫(xiě)爬蟲(chóng)的最大的競(jìng)爭(zhēng)對(duì)手,java的發(fā)展周期長(zhǎng)摹察,生態(tài)圈都比較完善恩掷,也有很多第三方庫(kù)的支持,java的代碼量比較大供嚎,開(kāi)發(fā)的成本比較高,后期維護(hù)也比較繁瑣克滴。()
php:php曾經(jīng)被叫做世界上最好的語(yǔ)言(一般用來(lái)做后端的)逼争,也可以用來(lái)寫(xiě)爬蟲(chóng)劝赔,但是對(duì)多任務(wù)的支持不太好,爬蟲(chóng)對(duì)效率要求比較高着帽,所以一般不使用php寫(xiě)爬蟲(chóng)杂伟。
c/c++:比較偏向于底層的語(yǔ)言,代碼的運(yùn)行效率高仍翰,學(xué)習(xí)門(mén)檻非常高赫粥,代碼成型比較慢歉备。
python:代碼簡(jiǎn)單易懂傅是,并且對(duì)第三方的庫(kù)也有很多檐束,python自帶的urllib網(wǎng)絡(luò)請(qǐng)求模塊捐寥,requests網(wǎng)絡(luò)請(qǐng)求模塊畜疾,網(wǎng)絡(luò)解析庫(kù)xpath,beautifulsoup4书闸,pyquery等等,還有成熟高效穩(wěn)定的爬蟲(chóng)框架scrapy(pyspider)等等利凑,并且還支持分布式爬蟲(chóng)(scrapy-redis)框架
爬蟲(chóng)的分類(lèi)(通用爬蟲(chóng),聚焦爬蟲(chóng)):
通用爬蟲(chóng):是搜索引擎的重要組成部分
作用和目的:盡可能全的將互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)下載到本地哀澈,通過(guò)分詞,去噪等進(jìn)行預(yù)處理割按,處理后進(jìn)行數(shù)據(jù)的持久化