主要內(nèi)容
爬蟲概述:了解什么是爬蟲
爬蟲就是將網(wǎng)絡(luò)中非結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)化問結(jié)構(gòu)數(shù)據(jù)化的工具
通俗來講:將網(wǎng)頁數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫的過程
爬蟲的分類
分為通用爬蟲和聚焦爬蟲
通用爬蟲:一般用在搜索引擎中,針對(duì)所有數(shù)據(jù)進(jìn)行廣泛采集
搜索引擎必須遵守爬蟲采集數(shù)據(jù)的約定協(xié)議
民間組織約定的爬蟲采集數(shù)據(jù)協(xié)議:ROBOT協(xié)議
聚焦爬蟲:也稱為定向爬蟲竖螃,針對(duì)目標(biāo)數(shù)據(jù)進(jìn)行定向數(shù)據(jù)采集[深度]
關(guān)于歷史數(shù)據(jù)的處理
分為增量爬蟲和累積爬蟲
增量爬蟲:需要實(shí)時(shí)對(duì)歷史采集數(shù)據(jù)進(jìn)行更新[歷史數(shù)據(jù)會(huì)發(fā)生變化]
累積爬蟲:歷史數(shù)據(jù)不會(huì)發(fā)生變化,一旦數(shù)據(jù)執(zhí)行完成,數(shù)據(jù)就是固定的寒跳。
簡單開發(fā)流程
第一行:生命編碼格式听皿,支持中文的# coding:utf-8
第一步:
創(chuàng)建目標(biāo)地址:
如: target_url = ‘www.baidu.com’
第二步:
設(shè)置請(qǐng)求頭:
如:headers = {'User-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36', }
第三步:
a.構(gòu)造請(qǐng)求對(duì)象沪斟,我們經(jīng)常在爬去數(shù)據(jù)過程中會(huì)對(duì)請(qǐng)求對(duì)象做一定的設(shè)置進(jìn)行偽裝
如:resquest=urllib2.Resquest(target_url,headers=headers)
b.構(gòu)造操作對(duì)象(支持代理操作)
如:proxy_handler=urllib2.ProxyHandler({'http':'ip:post'})
c.得到opener對(duì)象
如:proxy_opener=urllib2.build_opener(proxy_handler)
第四步:
發(fā)送請(qǐng)求悔耘,得到服務(wù)器數(shù)據(jù)
response = proxy_opener.open(request)
第五步:
把文件寫入本地
with open ('文件名'查邢,’wb‘) as f:
f.write (response.read())