很多人問(wèn)學(xué)了python能做什么?能找到什么工作
python應(yīng)用范圍非常廣泛,幾乎所有都能做;最常見(jiàn)的就是web和爬蟲(chóng)了;往后就是人工智能和數(shù)據(jù)分析了。這里時(shí)間有限我就不多說(shuō)了;今天我們就來(lái)說(shuō)說(shuō)爬蟲(chóng)吧。
一,首先爬蟲(chóng)的基本流程是什么?
urllib是用于獲取網(wǎng)絡(luò)資源的庫(kù),python3自帶。
初學(xué)爬蟲(chóng)者,主要是掌握urllib庫(kù)中request模塊的一堆函數(shù)功能。
有必要的話,也可以學(xué)習(xí)一下error模塊。
request模塊一些常用到的函數(shù)
函數(shù)功能簡(jiǎn)介Request返回一個(gè)Request對(duì)象,因?yàn)閷?duì)象有些常用的方法,故而必要的時(shí)候需要用到。urlopen通過(guò)直接給的URL或者Request對(duì)象化后的URL,返回一個(gè)含有該URL的網(wǎng)頁(yè)源碼的對(duì)象。ProxyHandler跟代理有關(guān)函數(shù),搭建與代理的通信build_opener跟代理有關(guān)函數(shù),創(chuàng)建一個(gè)opener對(duì)象install_opener安裝opener
一些常用到的方法
方法功能簡(jiǎn)介read()用于讀urlopen函數(shù)返回對(duì)象中的網(wǎng)頁(yè)源碼encode()編碼decode()解碼
編碼解碼還有這兩種函數(shù),str是關(guān)于編碼的函數(shù),bytes是關(guān)于解碼的函數(shù)。 網(wǎng)頁(yè)涉及到的編碼經(jīng)常有’utf-8’和”gb18030’等。 一些編碼解碼的內(nèi)容可以看這一篇博客——python3 中的編碼和解碼四、認(rèn)識(shí)一些模塊
re模塊
首先,需要了解的是 re模塊——正則表達(dá)式模塊。
正則表達(dá)式是什么?可以這么說(shuō),是用于快速?gòu)囊淮蠖炎址锌焖僬页鱿胍淖幼址囊环N表達(dá)方式。函數(shù)+表達(dá)方式=快速找出子字符串。
這個(gè)模塊是初學(xué)者必須要弄清楚的,內(nèi)容比較多,在這里就不多說(shuō)了。可以參考我寫(xiě)的一篇簡(jiǎn)略的博客——正則表達(dá)式
os模塊
可用于對(duì)文件文本的操作,可以創(chuàng)建文件夾,訪問(wèn)文件夾內(nèi)容等(博主對(duì)該庫(kù)了解不深,只用來(lái)創(chuàng)建過(guò)文件夾和訪問(wèn)文件夾內(nèi)容)
可以了解的函數(shù)有 創(chuàng)建文件夾用的函數(shù)mkdir和chdir、訪問(wèn)文件夾里的所有文件函數(shù)listdir。
csv模塊
爬取出來(lái)的數(shù)據(jù)可以以csv的格式保存,可以用office辦公軟件中的Excel表格軟件打開(kāi)。
網(wǎng)上給出的寫(xiě)法有好幾種,在此給出博主的寫(xiě)法。
首先你需要了解內(nèi)置函數(shù)open的newline參數(shù)用法,在這里,用與去除存入csv文件時(shí)多出來(lái)的空行。
csv模塊函數(shù)
writer,返回一個(gè)對(duì)寫(xiě)入數(shù)據(jù)操作的對(duì)象。
writerow,參數(shù)是列表,在表格中寫(xiě)入一行數(shù)據(jù)。
網(wǎng)站的文字內(nèi)容,圖片網(wǎng)址,基本都在該網(wǎng)站的網(wǎng)頁(yè)源碼。故而爬取時(shí),先把該網(wǎng)站的網(wǎng)頁(yè)源碼爬取出來(lái),然后從網(wǎng)頁(yè)源碼中篩選出自己想要的數(shù)據(jù)。用正則表達(dá)式從網(wǎng)頁(yè)源碼中篩選信息時(shí),需要先看網(wǎng)頁(yè)源碼來(lái)制定好合適的正則表達(dá)式。
一般鼠標(biāo)右擊該網(wǎng)頁(yè),找到”查看網(wǎng)頁(yè)源代碼“這一選項(xiàng)即可打開(kāi)。
快捷鍵:Ctrl + U
不過(guò)網(wǎng)頁(yè)源代碼太多太亂,有的時(shí)候找信息并不容易,可以使用Ctrl+F查找功能進(jìn)行查找。
也可以在網(wǎng)頁(yè)中,找到你想爬取的信息,然后右擊該信息位置,找到”審核元素”或者”檢查”選項(xiàng),可以看到整齊簡(jiǎn)潔的代碼。
但是,爬取信息都是基于網(wǎng)頁(yè)源代碼的,而”檢查”選項(xiàng)給出的代碼可能與源代碼不一樣,這樣的話就會(huì)出錯(cuò)。這涉及到網(wǎng)絡(luò)編程知識(shí),不作解釋。
五、認(rèn)識(shí)一些爬蟲(chóng)框架爬蟲(chóng)框架實(shí)用的有名氣大的Beautiful Soup、強(qiáng)大的Scrapy、分布式cola等。
結(jié)語(yǔ):爬蟲(chóng)教學(xué)從0到精通,只需要點(diǎn)擊關(guān)注,轉(zhuǎn)發(fā),記得私信“資料”。小編在這里祝大家工作愉快啦。
聯(lián)系客服