1. 程式人生 > >深度爬取網易Lofter的爬蟲

深度爬取網易Lofter的爬蟲

這裡的Lofter的工作是公司要的。主要目的是爬取大量使用者的相簿,之後做計算機視覺的訓練集來用的。個人感覺這個是爬蟲很常見的一個作用領域。(不過說實話,還是感覺有點low,覺得爬蟲還是比較底層的工作。)

說回lofter。像這種爬取圖片的一般都不難。但是Lofter這個網站,難就難在了其網頁中用時間戳來做一系列的包引數,如果沒有仔細研究的話,還是不好請求到包的。

下面看一下我是怎麼完成整個工作的。

1. 爬取個人主頁所有部落格裡面的照片

如果你認真研究完這個帖子,並且寫一點程式碼來試一下里面關鍵的幾步。就會明白裡面包請求的規律。具體規律不贅述。

這裡再根據我自己需求對程式碼做一些改變。並且加入協程來加快圖片的下載速度。

這個部分對應的指令碼是 lofter_spider_NameList_Concurrency.py

2. 從首頁獲取使用者ID.

在上一步工作的基礎之上,我們已經可以爬取某個使用者主頁裡面的照片。要想獲取大量的資料,只需要獲取大量的使用者ID即可。

點選進入第一個推薦照片,可以看到,下面有很多喜歡或者點讚的人。開啟瀏覽器的除錯工具(Chrome是F12),向下滑到最底部,點選底部的“檢視更多”按鈕,

這個時候可以看到彈出來的包裡有一個XHR觸發的包。

點進去這個包看一下響應(Response),你就可以看到這些點讚的人的資訊。

關鍵怎麼獲得這個包的資料,一般來說是需要get請求加上headers的。不過先看一下這個包的請求地址

紅色方框裡的就是我們想要的ID,就是那個" loup6 "。

到這裡,我們再觀察一下上面的點贊人對應的url,發現只有一個引數是未知的----postid。下面就要考慮怎麼獲得這個postid。其實很好理解:postid是針對每一篇釋出的部落格來說的,所以進入某個使用者的歸檔頁面(如果你認真研究了第一個部分中的內容就知道我在說什麼),隨便點選一篇部落格,然後檢視網頁原始碼,搜尋一下postid關鍵字,你就會看到其實postid就包含在原始碼內

所以就很簡單了,在使用者的主頁內遍歷其所有的博文的同時,就可以獲得postid,也就可以獲得給這篇博文點讚的使用者的ID。由此輻射,這個速度是非常快的,而且基本是停不下來的。

這裡有一個問題就是說使用者ID去重的問題。這裡我用了Redis資料庫中的Set,把爬來的使用者ID寫入對應資料庫的set,在寫入的時候由於set不含重複元素的特性,資料庫會自動幫你去重,所以不用考慮爬取到重複的使用者Id的問題了。

3. 其他

理論上來說,有了上面兩個部分的工作,你已經可以爬取lofter全站所有使用者的相簿了。聽上去是不是很酷。不過這需要很多時間。而且也沒有人用自己的電腦這麼做(太弱智了),一般都是放在線上的伺服器做這個工作。同時你也需要很大的儲存來存拿到的資料。

4. 總結

在我的工作中,我在自己的電腦上用一個週末爬到了268w使用者ID,然後寫了指令碼把資料庫匯出成為json資料,然後在伺服器中又重新讀json資料到線上伺服器的資料庫中。

之後在線上伺服器中,用Redis的List作為任務佇列,通過Lpop()命令讀取資料庫中的使用者ID。

lofter_spider_NameList_Concurrency.py指令碼通過pm2做程序守護(具體操作可以見我的其他博文)。之後就是時間和儲存的問題了。

所有指令碼和原始碼見以下

指令碼和原始碼

請尊重原創!!!!!!!!

如果你要轉載,請以醒目的標識著名源地址。

你也不想自己用心做的東西被剽竊。

相關推薦

深度Lofter爬蟲

這裡的Lofter的工作是公司要的。主要目的是爬取大量使用者的相簿,之後做計算機視覺的訓練集來用的。個人感覺這個是爬蟲很常見的一個作用領域。(不過說實話,還是感覺有點low,覺得爬蟲還是比較底層的工作。) 說回lofter。像這種爬取圖片的一般都不難。但是Lofter這個網

如何用Python爬蟲雲音樂歌曲

今天 http 分享圖片 分享 圖片 分分鐘 參考 down 技術 今天小編帶大家一起來利用Python爬取網易雲音樂,分分鐘將網站上的音樂down到本地。 跟著小編運行過代碼的筒子們將網易雲歌詞抓取下來已經不再話下了,在抓取歌詞的時候在函數中傳入了歌手ID和歌曲名兩個參數

如何用Python爬蟲雲音樂歌詞

網易雲歌詞 Python網絡爬蟲 網絡爬蟲 前幾天小編給大家分享了數據可視化分析,在文尾提及了網易雲音樂歌詞爬取,今天小編給大家分享網易雲音樂歌詞爬取方法。 本文的總體思路如下: 找到正確的URL,獲取源碼; 利用bs4解析源碼,獲取歌曲名和歌曲ID; 調用網易雲歌曲API,獲取歌詞; 將歌詞寫入

菜鳥學爬蟲新聞

學習了python基本語法後,對爬蟲產生了很大的興趣,廢話不多說,今天來爬取網易新聞,實戰出真知。 開啟網易新聞(https://news.163.com/)可以發現新聞分為這樣的幾個板塊: 這次選擇國內板塊來爬取文章。 1.準備 環境:python3 編譯器:PyChar

java實現爬蟲歌單資訊

之前一直對爬蟲很好奇,覺得它很神祕,而我有個朋友是做爬蟲的,最近有空就向他學習了一下,並試著寫了個小程式。 首先是獲得httpclient物件及httpresponse物件,此兩者是用於傳送請求及接受資料。 CloseableHttpClient httpClient

python 爬蟲 嚴選全網商品價格評論資料

1.獲取商品目錄 在Chrome瀏覽器開發者工具中,可以找到目錄的JS地址: http://you.163.com/xhr/globalinfo//queryTop.json  得到商品資料 def get_categoryList():

【Python】【爬蟲、騰訊、新浪、搜狐新聞到本地

這個實驗主要爬取新聞網站首頁的新聞內容儲存到本地,爬取內容有標題、時間、來源、評論數和正文。 工具:python 3.6 谷歌瀏覽器 爬取過程: 一、安裝庫:urllib、requests、BeautifulSoup 1、urllib庫:Urlli

【Java爬蟲學習】WebMagic框架爬蟲學習實戰一:雲歌單資訊,並存入mysql中

最近,需要使用Java進行爬蟲編寫,就去學了Java的爬蟲。因為之前學習了Scrapy框架,所以學Java的爬蟲使用了WebMagic框架,這個框架是基於Scrapy框架開發的。大家有興趣可以去看看操作文件:  這個框架是國人開發的,所以說明文件都是中文,簡單易懂。

Java爬蟲汽車車型庫

最近由於工作需要,寫了一個小的爬蟲,主要用於爬取網易汽車車型庫(http://product.auto.163.com/)上的不同品牌/車標(共175個車標)下不同車系(共1650個系列)的的圖片(各八張) 程式碼下載 程式碼如下: 共CarBra

爬蟲基本介紹 && python3 爬蟲新聞排行榜

爬蟲基本介紹 1. 什麼是爬蟲? 爬蟲是請求⽹網站並提取資料的⾃自動化程式 2. 爬蟲的基本流程 發起請求 通過HTTP庫向目標站點發起請求,即傳送一個Request,請求可以包含額外的headers等資訊,等待伺服器器響應。 解析內容

python3 爬蟲實戰之新聞APP端

(一)使用工具 這裡使用了火狐瀏覽器的user-agent外掛,不懂的可以點這裡火狐外掛使用 (二)爬蟲操作步驟: 百度 網易新聞並選擇 步驟一: 步驟二: 步驟三: 步驟四: 最後一步: 注意點: (1

Python3.7 爬蟲(三)使用 Urllib2 與 BeautifulSoup4 雲音樂歌單

廢話 在前面的的部落格中我們已經能夠使用 python3 配合自帶的庫或者第三方庫抓取以及解析網頁,我們今天來試試抓取網易雲音樂的歌單資訊 分析網頁 我們現在來分析網頁 點選右側介面中的 Network 進入網路請求分析介面,如下:

爬蟲入門——用python雲音樂熱門歌手評論數

本文參考Monkey_D_Newdun 的文章用爬蟲獲取網易雲音樂熱門歌手評論數執行平臺:Windows 10IDE:spyderPython版本:3.6瀏覽器:360一、爬蟲基本思路a. 通過URL或者檔案獲取網頁:開啟網頁-F12-找到需要獲取的url,request h

【python爬蟲自學筆記】-----雲歌單中歌曲歌詞

工具:python3.6 ,pycharm 開始對網頁的內容進行爬取的時候,使用requests獲得響應,只傳url,但是沒有獲得響應,使用urllib新增請求頭部,並對response的內容使用utf-8進行解碼,使用BeautifulSoup轉換為html物件,

python爬蟲(三)雲音樂歌曲列表

1.開啟網易雲音樂列表,按F12,選擇Doc模式,方便檢視。2.檢視網頁的請求方式--get請求3.檢視header4. 在Preview中搜索任意一首歌曲,比如:無由可以看到,歌曲列表在‘ul’標籤中,那麼我們可以通過Be阿UtigulSoup去搜索明晰了結構,就可以寫程式

爬蟲第三戰 json新聞

出洞,寫程式碼,本熊這次要帶來的新內容是涉及到一部分動態網頁的問題,爬取網易新聞,感覺這次難度不是一般的大,好吧,,其實我每次都是這麼想的。我什麼時候能寫出非常棒的程式碼呢(圖樣圖森破),轉回正題,N

python雲音樂歌單音樂

string attrs default textarea bsp color read contents dom 在網易雲音樂中第一頁歌單的url:http://music.163.com/#/discover/playlist/ 依次第二頁:http://music.1

熱評做成雲熱門截圖形式(給自己看的很亂有待更改)

lac post 更改 with con requests true ext2 .post 1 import requests,json,os,datetime,math,re 2 from PIL import Image,ImageDraw,ImageFont

熱評做成雲熱門截圖形式(給自己看的很亂有待更改+)

json roman reply 熱門 req fan sta strftime ram # coding: utf-8 import requests, json, os, time, math, re from PIL import Image, Image

我用Python雲音樂上的Hip-hop歌單,分析rapper如何押韻

line gone 謠言 大致 -i 態度 大眾 其中 當前 緣起 《中國有嘻哈》這個節目在這個夏天吸引了無數的目光,也讓嘻哈走進了大眾的視野。作為我今年看的唯一一個綜藝節目,它對我的影響也蠻大。這個夏天,我基本都在杭州度過,在上下班的taxi上,我幾乎都在刷這個節目,最後