<h1>1 分析首頁信息,獲取每個(gè)標(biāo)題真實(shí)鏈接<h1>
我們的目的是獲得每個(gè)首頁每篇文章的鏈接的url簇抵。
我們首先打開今日頭條的首頁庆杜,在搜索處搜索街拍。會出現(xiàn)如下的結(jié)果碟摆。
我們要爬取的是圖集里面的圖片晃财。我們再打開圖片,點(diǎn)開檢查典蜕。得到下面的結(jié)果断盛。
篩選其中XHR里面的文件,發(fā)現(xiàn)我們在滑動(dòng)鼠標(biāo)的時(shí)候愉舔,里面的文件隨著鼠標(biāo)的滑動(dòng)而增加钢猛。在隨意點(diǎn)開里面的一個(gè)文件,
發(fā)現(xiàn)其都是一個(gè)基礎(chǔ)的網(wǎng)址http://www.toutiao.com/search_content/? 再加上請求的各種信息屑宠。
offset:0
format:json
keyword:街拍
autoload:true
count:20
cur_tab:3
我們再分析Response里面的內(nèi)容厢洞,發(fā)現(xiàn)我門所需要的每個(gè)圖集的信息都在里面仇让。
其中我們需要目標(biāo)鏈接url地址也在article_url里面典奉,我們隨意找一個(gè)url來打開,
發(fā)現(xiàn)其就為我們所需要的目標(biāo)鏈接丧叽。
<h1>2 分析目標(biāo)鏈接里面的信息<h1>
我們的目的是獲取目標(biāo)網(wǎng)頁里面每張圖片的url卫玖。
首先,我們?nèi)我獯蜷_一個(gè)目標(biāo)鏈接踊淳。經(jīng)過分析假瞬,其中每張圖片的url信息都在其返回信息的gallery里面。
最后迂尝,我們只需要用正則匹配處每張圖片的url就可以實(shí)現(xiàn)我們所需要的下載圖片的功能脱茉。
<h1>3 下面我們開始編碼來依次實(shí)現(xiàn)這些功能<h1>
<h3>(1) 首頁的解析,獲得每每個(gè)標(biāo)題的url鏈接<h3>
我們將offset和keyword設(shè)為兩個(gè)可變參數(shù)垄开,改變offset的值就可以獲得不同的目標(biāo)鏈接信息琴许。改變keyword的值就可以將‘街拍’改成 ‘動(dòng)畫’,‘自然’等等各種不同的圖集溉躲。
發(fā)現(xiàn)我們獲得的首頁數(shù)據(jù)為json格式的數(shù)據(jù)榜田。之后我們就需要解析這里面的json數(shù)據(jù),通過解析json數(shù)據(jù)獲得其中每個(gè)目標(biāo)網(wǎng)頁的url鏈接.
<h3>(2) 解析目標(biāo)頁的信息锻梳,獲得每張圖片的url鏈接<h3>
至此箭券,我們獲得了目標(biāo)圖片的url鏈接,但是這里的url鏈接隱藏在json格式的字符串里面疑枯,我么之后就需要解析json字符串來獲得其中的url鏈接.
我們在這里就獲得了所有圖片的url鏈接信息辩块,之后我們就需要將數(shù)據(jù)存儲到mongodb數(shù)據(jù)庫。
<h3>(3) 將數(shù)據(jù)存儲到mongodb數(shù)據(jù)庫<h3>
獲取到的數(shù)據(jù)如圖。
<h3>(4) 下載所獲得的圖片鏈接<h3>
<h3>(5) 引入多線程下載所獲得的圖片鏈接<h3>
明顯感覺其抓取速度加快废亭,之后大功告成古今。