要學(xué)會(huì)使用Python爬取網(wǎng)頁信息無外乎以下幾點(diǎn)內(nèi)容:
要會(huì)Python
知道網(wǎng)頁信息如何呈現(xiàn)
了解網(wǎng)頁信息如何產(chǎn)生
學(xué)會(huì)如何提取網(wǎng)頁信息
第一步Python是工具,所以你必須熟練掌握它,要掌握到什么程度呢?如果你只想寫一寫簡單的爬蟲,不要炫技不考慮爬蟲效率,你只需要掌握:數(shù)據(jù)類型和變量字符串和編碼
使用list和tuple
條件判斷、循環(huán)
使用dict和set
你甚至不需要掌握函數(shù)、異步、多線程、多進(jìn)程,當(dāng)然如果想要提高自己小爬蟲的爬蟲效率,提高數(shù)據(jù)的精確性,那么記住最好的方式是去系統(tǒng)的學(xué)習(xí)一遍Python。
那么進(jìn)入第二步:知道網(wǎng)頁信息如何呈現(xiàn)?你首先要知道所需要抓取的數(shù)據(jù)是怎樣的呈現(xiàn)的,就像是你想要學(xué)做一幅畫,在開始之前你要知道這幅畫是用什么畫出來的,鉛筆還是水彩筆等等
但是放到網(wǎng)頁信息來說這兒只有兩種呈現(xiàn)方式:
HTML(HTML是用來描述網(wǎng)頁的一種語言)
JSON (JSON是一種輕量級的數(shù)據(jù)交換格式)
那么我們緊接著第三步:數(shù)據(jù)怎么來?數(shù)據(jù)當(dāng)然是從服務(wù)器反饋給你的,為什么要反饋給你?因?yàn)槟惆l(fā)出了請求。
“Hi~ ,服務(wù)器我要這個(gè)資源”
“正在傳輸中...”
“已經(jīng)收到HTML或者JSON格式的數(shù)據(jù)”
這是什么請求?
這里你需要了解一下http的基礎(chǔ)知識(shí),
更加精確來說你需要去了解GET和POST是什么,區(qū)別是什么。
下面就是好好享受了。現(xiàn)在我們已經(jīng)拿到了數(shù)據(jù),我們需要在這些錯(cuò)亂的數(shù)據(jù)中提取我們需要的數(shù)據(jù),這時(shí)候我們有兩個(gè)選擇。
第一:Python正則表達(dá)式 ,再大再亂的內(nèi)容,哪怕是大海撈針,只要告訴我這個(gè)針的樣子我都能從茫茫大海中撈出來,強(qiáng)大的正則表達(dá)式是你提取數(shù)據(jù)的不二之選。
第二:Beautiful Soup 4.2.0 文檔,或許我們有更好的選擇,我們把原始數(shù)據(jù)和我們想要的數(shù)據(jù)的樣子扔個(gè)這個(gè)Beautifulsoup,然后讓它幫我們?nèi)ふ遥@也是一個(gè)不錯(cuò)的方案,但是論靈活性,還是正則表達(dá)式更好用。這里就是所有爬取網(wǎng)頁所需要掌握的知識(shí),當(dāng)你學(xué)習(xí)完這些內(nèi)容,接下來你要做的事就是實(shí)戰(zhàn)了,并且只有在實(shí)戰(zhàn)中才能真正的提升自己的編程能力,學(xué)習(xí)更多爬蟲以及反爬蟲的技巧。