看到別人都爬網(wǎng)絡上的美圖,不免也有些手癢榛瓮,作為直播愛好者铺董,平時常看斗魚禀晓,這次就決定用斗魚顏值區(qū)的小姐姐來試試精续。
之前是用源碼來解析的,這次發(fā)現(xiàn)斗魚的翻頁和愛奇藝的不一樣粹懒,不能和之前一樣處理重付。怎么辦呢
打開f12,嘗試著點擊第二頁,第三頁,第四頁,意外的發(fā)現(xiàn)上面出現(xiàn)2,3,4的文件凫乖,點擊2确垫,可以清楚的看到我們所需要請求的URL"https://www.douyu.com/gapi/rkc/directory/2_201/2
查看該URL的返回值
我們所需要的數(shù)據(jù)就都在里面了弓颈,得來全不費功夫。
將URL打開后删掀,原以為數(shù)據(jù)就會被打印出來翔冀,咦,報錯了披泪!
原來是斗魚做的反爬蟲處理纤子,被發(fā)現(xiàn)了!
自然是在度娘的幫助下解決了款票,加上headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}控硼,輕輕松松解決問題。
返回后的數(shù)據(jù)為字符串艾少,將它轉(zhuǎn)為json數(shù)組卡乾,即可輕松遍歷得到我們所需的圖片地址及主播的名稱。
觀察到一般斗魚顏值區(qū)主播就四頁左右姆钉,所以我們先爬取前三頁说订。爬取開始了!
圖片在一張一張的增加潮瓶,突然又報錯了!
urllib.error.HTTPError: HTTP Error 403: Forbidden
還是這個和前面一樣的錯钙姊,這是為啥毯辅,我在下載圖片時沒設置延時被發(fā)現(xiàn)了!
只能繼續(xù)設置延時煞额,這里經(jīng)過測試思恐,在每爬50張設置2秒延時后,還是被發(fā)現(xiàn)了膊毁!心一狠胀莹,干脆做了隨機數(shù)的延時,每爬一張都設置了延時婚温,這總沒問題了吧描焰。
延時設置后,爬取速度慢了不少栅螟,但沒有被斗魚發(fā)現(xiàn)了荆秦,一張一張慢慢爬,小姐姐都收入我的文件夾
附成果一張~有你們沉ν迹看的小姐姐嗎
代碼地址:Github