1. 程式人生 > >Python爬蟲(6):煎蛋網全站妹子圖爬蟲

Python爬蟲(6):煎蛋網全站妹子圖爬蟲

上一篇文章中我們抓取了豆瓣圖書的資料,如果大家執行成功,並且看到資料夾下的 txt 檔案了。是不是有一種剛接觸程式設計,第一次輸出Hello world!時的欣喜。和上一篇實踐不同,我們這一次來爬取 煎蛋網 全站妹子圖,並且儲存到指定資料夾下。

爬取流程

  • 從煎蛋網妹子圖第一頁開始抓取;
  • 爬取分頁標籤獲得最後一頁數字;
  • 根據最後一頁頁數,獲得所有頁URL
  • 迭代所有頁,對頁面所有妹子圖片url進行抓取;訪問圖片URL並且儲存圖片到資料夾。

開始

通過上一篇文章的爬取過程,我們基本上理解了抓取一個網站的大致流程。因為一個網站雖然有很多頁,但是大部分網站每一頁的HTML標籤內容都是相同的。我們只要獲取到一頁的內容,就可以獲得所有頁的內容了。那麼開始之前,我們來分析一下煎蛋網妹子圖頁面的URL

第一頁的 url:http://jandan.net/ooxx/page-1

第二頁:http://jandan.net/ooxx/page-2

最後一頁:http://jandan.net/ooxx/page-93

不難發現,煎蛋網的 url 的規律是比較簡單的,每一頁後面 page 的數字就是幾。那麼我們可以通過一個迴圈就可以獲得所有的頁面 URL 了。但是大家應該想到,這個網站每天都會更新,今天是 93 頁,明天就會增加到94頁了。如果每一都要爬一次的話,那麼每次都要改一下內碼表數資訊了。這樣實現起來雖然可以,但是不免有些愚蠢。

所以我們需要通過頁面的標籤資訊讓程式自己獲得頁數,我們訪問http://jandan.net/ooxx/

這個頁面時,就相當於我們直接訪問了最後一頁。大家可以自己試試看。

圖中我們可以明確的看到最後一頁的數字是94.只要通過這個頁面的URL進行抓取就可以得到。我們先獲得原始碼:

import requestsfrom bs4 import BeautifulSoupheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}resp = requests.get(url, headers=headers)
soup = BeautifulSoup(resp.text, 'lxml')

我們按下f12,從頁面原始碼中找到最後一頁 94 所在的標籤:

原來 94 就在這個span標籤啊。接下來是不是很簡單了:

# 獲得最高頁碼數allpage = soup.find('span', class_="current-comment-page").get_text()[1:-1]

由於標籤內的 94 邊包含一個[],大家不要以為只是一個list,只要[0]就可以獲得的。我們完全可以使用type(),看一下他的屬性,就知道它是一個字串,我們利用切片去掉第一個和最後一個字元,就得到了頁數了。
得到頁數後,我們利用迴圈就可以得到所有頁的url了:

urllist = []# for迴圈迭代出所有頁面,得到urlfor page in range(1, int(allpage)+1):allurl = base_url + 'page-' + str(page)urllist.append(allurl)

我們把它儲存到一個list中。
那麼現在,我們得到所有頁面的 url,就可以來獲取每一頁的內容了。我們以最後一頁為例來進行抓取。

我們仍然使用審查元素,找到圖片 url 所在的標籤。仍然是老方法,獲取到頁面所有包含圖片的img標籤:

# css選擇器allimgs = soup.select('div.text > p > img')

只要一行程式碼,我們就成功獲得所有標籤了。這裡使用了 CSS選擇器,大家是否還記得這個方法呢。可以檢視之前的文章或者BeautifulSoup的官方文件瞭解哦。如果大家對 CSS 不是很熟悉,或者根本不知道。也沒關係,反正find_all()find()方法也是可以實現的。不過這裡我教大家一個簡單的CSS選擇器方法。

我們只要按f12開啟瀏覽器的開發者工具,找到標籤的位置,右擊標籤。就可以看到這個情況:

沒錯,我們直接Copy selector的內容,粘貼出來就是這樣的字串:#comment-3468457 > div > div > div.text > p > img

我們稍微去掉前面的一些標籤,大多數情況下保留到父標籤後面的內容就可以了。就是這樣:div.text > p > img

我們放到程式碼中,執行一下就知道是不是成功了。

結果只一個列表:

[<img onload="add_img_loading_mask(this, load_sina_gif);" org_src="//wx4.sinaimg.cn/mw690/6adc108fly1fg90v6vzipg20ak05xqv5.gif" src="//wx4.sinaimg.cn/thumb180/6adc108fly1fg90v6vzipg20ak05xqv5.gif"/>, <img onload="add_img_loading_mask(this, load_sina_gif);" org_src="//wx4.sinaimg.cn/mw690/6adc108fly1fg90qymd8pg20dc0dcnph.gif" src="//wx4.sinaimg.cn/thumb180/6adc108fly1fg90qymd8pg20dc0dcnph.gif"/>, <img onload="add_img_loading_mask(this, load_sina_gif);" org_src="//wx4.sinaimg.cn/mw690/6adc108fly1fg90s98qsbg207e08mu10.gif" src="//wx4.sinaimg.cn/thumb180/6adc108fly1fg90s98qsbg207e08mu10.gif"/>, <img onload="add_img_loading_mask(this, load_sina_gif);" org_src="//wx3.sinaimg.cn/mw690/6adc108fly1fg90v51p5eg20a00dchdv.gif" src="//wx3.sinaimg.cn/thumb180/6adc108fly1fg90v51p5eg20a00dchdv.gif"/>, <img src="//wx4.sinaimg.cn/mw600/a1b56627gy1fdb7851js0j20ku4xcx6q.jpg"/>, <img src="//wx4.sinaimg.cn/mw600/a1b56627gy1fdb78fw14yj20dc46pb2a.jpg"/>, <img src="//wx3.sinaimg.cn/mw600/a1b56627gy1fdb78hqr1kj20dc1i0x02.jpg"/>, <img src="//wx4.sinaimg.cn/mw600/a1b56627gy1fdb78ldnwbj20ku3ei4qq.jpg"/>, <img src="//wx4.sinaimg.cn/mw600/a82b014bly1fg8gkj95toj21kw1kwh3s.jpg"/>, <img src="//wx4.sinaimg.cn/mw600/a82b014bly1fg8gkhmfraj21kw11xgth.jpg"

相關推薦

Python爬蟲(6):全站妹子爬蟲

上一篇文章中我們抓取了豆瓣圖書的資料,如果大家執行成功,並且看到資料夾下的 txt 檔案了。是不是有一種剛接觸程式設計,第一次輸出Hello world!時的欣喜。和上一篇實踐不同,我們這一次來爬取 煎蛋網 全站妹子圖,並且儲存到指定資料夾下。爬取流程從煎蛋網妹子圖第一頁開始抓取;爬取分頁標籤獲得最後一頁數字

python爬蟲--下載妹子到本地

eve 元素 download down find .get fault log arc 1 #coding:utf-8 2 """ 3 下載煎蛋妹子到本地,通過selenium、正則表達式、phantomjs、Beautifulsoup實現 4 """ 5

python爬取妹子,已解密圖片~~~~~

本來想爬一波無聊圖,唉,竟然加密了。。。。 還好是base64 不說了,程式碼獻上 2018.12.14 有效。。。。。   import requests from bs4 import BeautifulSoup import base64,time base64_l

爬蟲妹子 大爬哦

ima 應該 h+ pan class net 處理 num close 今天為了測試一下urllib2模塊中的headers部分,也就是模擬客戶端登陸的那個東東,就對煎蛋網妹子圖練了一下手,感覺還可以吧。分享一下! 代碼如下 # coding:UTF-8 impor

Python3 Scrapy框架學習三:爬取加密妹子圖片(全爬)

以下操作基於Windows平臺。 開啟CMD命令提示框: 新建一個專案如下: 開啟專案裡的setting檔案,新增如下程式碼 IMAGES_STORE = './XXOO' #在當前目錄下新建一個XXOO資料夾 MAX_PAGE = 40 #定義爬取的總得頁數

Python爬蟲之爬取妹子

創建目錄 req add 註意 not 相同 esp mpi python3 這篇文章通過簡單的Python爬蟲(未使用框架,僅供娛樂)獲取並下載煎蛋網妹子圖指定頁面或全部圖片,並將圖片下載到磁盤。 首先導入模塊:urllib.request、re、os import

Python爬蟲入門教程,突破反爬措施,妹子批量抓取!

  今天寫一個爬蟲愛好者特別喜歡的網站煎蛋網 ,這個網站其實還是有點意思的,網站很多人寫了N多的教程了,各種方式的都有,當然網站本身在爬蟲愛好者的不斷進攻下,也在不斷的完善,反爬措施也很多,今天我用 selenium 在揍他一波。    

python 爬蟲爬取妹子

前言 大家好,這裡是「Python知識圈」爬蟲 系列教程。此文首發於「brucepk」公眾號,歡迎大家去關注。此係列教程以例項專案為材料進行分析,從專案中學習 python 爬蟲,跟著我一起學習,每天進步一點點。 煎蛋網站 煎蛋網.png 很多朋友都反應學 pyt

Python Scrapy 妹子例項

前面介紹了爬蟲框架的一個例項,那個比較簡單,這裡在介紹一個例項 爬取 煎蛋網 妹子圖,遺憾的是 上週煎蛋網還有妹子圖了,但是這周妹子圖變成了 隨手拍, 不過沒關係,我們爬圖的目的是為了加強實戰應用,管他什麼圖了先爬下來再說。 言歸正傳   這個例項,主要是講將圖片爬了下來,儲存到本地,這個

Python爬蟲入門教程 18-100 XXOO圖片抓取

寫在前面 很高興我這系列的文章寫道第18篇了,今天寫一個爬蟲愛好者特別喜歡的網站煎蛋網http://jandan.net/ooxx,這個網站其實還是有點意思的,網站很多人寫了N多的教程了,各種方式的都有,當然網站本身在爬蟲愛好者的不斷進攻下,也在不斷的完善,反爬措施也很多,今天我用selenium在揍他一波

python爬蟲之反爬蟲情況下的圖片爬取初步探索

本次爬蟲網址:http://jandan.net/ooxx 前言:   前段時間一直在折騰基於qqbot的QQ機器人,昨天用itchat在微信上也寫了一個機器人,相比webqq,微信的web端功能比較豐富,圖片、檔案等都可以傳輸。今天閒來無事準備給寫個爬蟲豐富微信機器

Python爬蟲抓取(jandan.net)無聊

下載 logs start input req com read ref color 1 #!/usr/bin/python 2 #encoding:utf-8 3 ‘‘‘ 4 @python 3.6.1 5 @author: [email prote

python來抓取“”上面的美女圖片,尺度很大哦!哈哈

each file like http add 寫入 header 。。 num 廢話不多說,先上代碼: import urllib.request import re #獲得當前頁面的頁數page_name def get_pagenum(url): req

python爬取妹子(老司機養成之路)

chrom all with file windows import apple 妹子 lib 源碼: 1 import urllib.request 2 from bs4 import BeautifulSoup 3 import os 4 import io

python3爬蟲爬取妹紙圖片

port 商業 技術分享 爬取 其中 lar c函數 base 技術 其實之前實現過這個功能,是使用selenium模擬瀏覽器頁面點擊來完成的,但是效率實際上相對來說較低。本次以解密參數來完成爬取的過程。 首先打開煎蛋網http://jandan.net/ooxx,查看網頁

python 爬取ooxx妹子

煎蛋網妹子圖首頁(http://jandan.net/ooxx),這個連結看起來怎麼那麼邪惡呢?經分析網站隱藏了圖片地址。心一橫,採取曲線路線,成功爬取大量妹子圖~ 原始碼如下: 1 import requests 2 import re 3 import os 4 import base6

Python 爬取妹子

煎蛋妹子圖網站 最近一直在通過爬蟲的練習,來鞏固自己的所學習到的 python 基礎,和爬蟲一些框架的使用。今天的程式就是最近在學習的 selenium 庫,通過利用 requests + beautifulsoup + selenium 庫來進行網站的抓取。抓取的物件是煎蛋網中的妹子板塊

Python爬取妹子

煎蛋妹子圖網站 最近一直在通過爬蟲的練習,來鞏固自己的所學習到的 python 基礎,和爬蟲一些框架的使用。今天的程式就是最近在學習的 selenium 庫,通過利用 requests + beautifulsoup + selenium 庫來進行網站的抓取。抓取的物件是煎蛋網中的妹子板塊,圖片的

爬蟲之JS逆向解析img路徑

ces param 得到 exception res lex image pytho pool 圖片使用js onload事件加載 <p><img src="//img.jandan.net/img/blank.gif" onload="jandan_lo

python3 15行程式碼爬取(原)--基礎逆向破解js-------------------玉米都督

如果您覺得我的文章對您有用,請您給我一個關注,您的每一個關注都是對我極大的支援,我也會極大的提高產出效率,To_share_code 做爬蟲 基本功就是逆向js, ps: 其實沒必要關心js函式的內部細節,只要找到函式的輸入輸出點就可以了。 萬變不離其宗,只要在 輸入、輸出的地方下斷點,