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