python爬煎蛋妹子圖--20多行代碼搞定煎蛋妹子圖庫


如果說一個人夠無聊的話。。。

就會做一些十分美(wei)麗(suo)的事情啦哈哈哈。。。

好的,話不多說,進入正題。

 

正如標題所示,我們今天的目標很簡單:

代碼要少,妹子要好。

 

步驟如下:

1. 首先我們得確定需要用到的庫:

就requests吧,我們首先嘗試向煎蛋(http://jiandan.net/ooxx)發起get請求

(當然心里希望不需要加頭部信息巴拉巴拉一堆東西。。。)

1 import request
2 url = 'http://jandan.net/ooxx'
3 r = request.get(url)
4 
5 print r.status_code,r.content

看見200我就很高興,輸出頁面也很正常

沒想到還一步到位了,不需要做任何多余工作

(內心表示疑惑,煎蛋沒有防爬機制嗎?給面子!)

 

2. 接下來就要分析html:

其實目的就是img嘛,我發現結構很簡單,正則表達式這么寫就行了:

1 pic_url = re.findall('<img src="//(.*?)" /></p>',r.content)

(可以print試試,發現並沒有多余的圖片)

 

3. 接下來就是分析頁碼:

我發現頁碼也沒做什么特別的處理,完全是url提交頁碼信息

於是只要寫一個循環滿足這個url就行了:

1 for i in range(1,231):
2     url = 'http://jandan.net/ooxx/page-'+str(i)+'#comments'

(一共230頁,應該是刪過了。。。)

 

4. 接着就把抓圖片url做一個函數,然后進行多線程處理即可:

  完整代碼:

 1 #coding=utf-8
 2 import requests
 3 import re
 4 import thread
 5 import time
 6 
 7 def get_pic_url(url):
 8     r = requests.get(url)
 9 
10     pic_url = re.findall('<img src="//(.*?)" /></p>',r.content)
11 
12     for i in pic_url:
13         print i
14 
15 
16 def main():
17 
18     for i in range(1,231):
19 
20         url = 'http://jandan.net/ooxx/page-'+str(i)+'#comments'
21         thread.start_new_thread(get_pic_url,(url,))
22         time.sleep(0.1)
23         #一定要加上time.sleep()不然不能成功運行!!!!!!    
24 
25 if __name__ == '__main__':
26     main()

在thread處理多線程的時候,循環內一定要加上time.sleep(),不然會很慘,比如停止工作巴拉巴拉。。。

 

好啦,這樣我們就輕松獲得所有妹子圖片url,一共五千張不到,咱就不再urllib下載了,估計也有個幾個g

 

能這么少代碼解決也是拖了煎蛋良好的給你爬機制的福,爽!20行代碼!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM