instagram动态网页图片内容爬取(一)
學(xué)習(xí)了python兩個多月,前期的python基礎(chǔ)和python爬蟲入門都是在中國大學(xué)mooc平臺上學(xué)習(xí)的,都是北理嵩天老師開設(shè)的兩門課程,很適合像我一樣的小白初學(xué)者學(xué)習(xí)。
python語言程序設(shè)計:http://www.icourse163.org/learn/BIT-268001?tid=1002788003
python網(wǎng)絡(luò)爬蟲與信息提取:http://www.icourse163.org/learn/BIT-1001870001?tid=1002781006
?
后續(xù)還在慕課網(wǎng)上進行了爬蟲入門課程的學(xué)習(xí): http://www.imooc.com/learn/563
該課程主要采用面向?qū)ο蟮姆绞?#xff0c;進行了爬蟲程序的開發(fā),老師講的很細很好,推薦。這個課程不僅讓我對爬蟲相關(guān)知識進行拓展和鞏固,同時也知道面對對象的編程方式在實際程序中的運用(不再是animal,dog,cat的例子了)。
?
廢話不多說了直接進入正題:在后續(xù)探索爬蟲過程中,我發(fā)現(xiàn)了一個問題,有些網(wǎng)頁的源代碼打開后沒有我們需要爬取的內(nèi)容(或者不全),后續(xù)內(nèi)容均為動態(tài)加載的,源代碼沒有變,比如這次我要爬取的ins頁面上用戶上傳的照片(由于不可明說的原因ins需要翻墻才能訪問)。
?
第一步:爬取基本網(wǎng)頁圖片內(nèi)容(以NASA ins主頁為例)
F12查看源代碼發(fā)現(xiàn),需要爬取的圖片信息在這個“<scripttype="text/javascript">window._sharedData =”下面,還非常友好的以json格式保存:
其中,本次爬取任務(wù)最重要的圖URL地址在”display”下面:
后續(xù)就簡單了寫程序爬取
首頁及我程序中base_url的相關(guān)內(nèi)容獲取。獲取的內(nèi)容均是json格式,根據(jù)具體需要爬取其中的內(nèi)容即可。我這里主要就爬取了url、點贊數(shù)、評論數(shù)。
?
OK,第一步基本頁面上面的圖片信息就爬取完畢。當我們下拉網(wǎng)頁的時候發(fā)現(xiàn),有新的圖片加載出來,而這些內(nèi)容在之前我們爬取的“<scripttype="text/javascript">window._sharedData =”里面并沒有,這怎么搞呢?
第二步:爬取后續(xù)加載圖片內(nèi)容
還是F12大法,這次就要查看一下Network里面到底每次給我們響應(yīng)的什么內(nèi)容:
發(fā)現(xiàn)紅框內(nèi)容最初只有我們能看見的12張圖片內(nèi)容:
當下拉的時候,就發(fā)現(xiàn)里面多出了新加載的12張圖片:
主要關(guān)注的紅框這一條url,打開這條url:
”https://www.instagram.com/graphql/query/?query_hash=76d9c5f9c2d88aa251ece9ea61fdc570&variables=%7B%22id%22%3A%22528817151%22%2C%22first%22%3A12%2C%22after%22%3A%22AQCxI0PXrVr_77JeVWMLDL2Ows0hcYey2eXQWhbKFQgcMvVw3CAKKmy_AhOzaVIuo9jzBQWinakpJ8e-WQz1WO1Qage7wrGs9Dt95b9MGGP56g%22%7D”
發(fā)現(xiàn)里面就是需要的新加載圖片的信息:
同樣很友好是json格式,那還等什么直接下程序爬取內(nèi)容吧。
我之前爬取后用html 格式輸出的部分內(nèi)容:
基本上爬取ins上面的照片內(nèi)容就完成,不過這只是做到爬取ins的第一步,特別是后續(xù)加載的網(wǎng)頁每次都要通過F12查看url不是很麻煩,后面就是通過base_url直接判斷獲取后續(xù)url進行爬取。
?
源代碼:https://github.com/fangfucdwin/ins-cwal
面向?qū)ο?#xff1a;https://github.com/fangfucdwin/ins_craw2
?
本人第一篇博文,望各種網(wǎng)友覺得有用的點個贊,各種大神多指點指點。
總結(jié)
以上是生活随笔為你收集整理的instagram动态网页图片内容爬取(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 持续交付 2.0
- 下一篇: The Canonical List o