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

来源:http://www.cnblogs.com/ZhangShY/archive/2017/08/03/7282512.html
-Advertisement-
Play Games

如果說一個人夠無聊的話。。。 就會做一些十分美(wei)麗(suo)的事情啦哈哈哈。。。 好的,話不多說,進入正題。 正如標題所示,我們今天的目標很簡單: 代碼要少,妹子要好。 步驟如下: 1. 首先我們得確定需要用到的庫: 就requests吧,我們首先嘗試向煎蛋(http://jiandan.n ...


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

就會做一些十分美(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行代碼!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、string.Format() 將【數字字元串】轉為兩位小數顯示的字元串: 1 dt = dtResult.Select(it => new CommodityPriceLimitEntity 2 { 3 CommodityId = it.CommodityId.ToString(), 4 Co ...
  • 對數據加密分兩種,一種是對資料庫本身進行加密,另一種是對數據表中的數據進行加密, 如果SQLite資料庫加密,我這裡使用的一個管理工具叫SQLiteDeveloper,如下就可以加密資料庫 , 如果在工具中不提供密碼的情況下打開資料庫,會給你錯誤提示如下: , 或者在C# 使用錯誤的密碼也會給你錯誤 ...
  • 在地圖上畫一個多邊形保存的時候出現 在執行用戶定義常式或聚合 "geography" 期間出現 .NET Framework 錯誤:System.ArgumentException: 24200: 指定的輸入不代表有效的地理實例 的提示,找了很久沒有找到解決辦法,最後發現畫多邊形的時候換個方向開始畫 ...
  • IEnumerable 只有一個方法:IEnumerator GetEnumerator(). INumerable 是集合應該實現的一個介面,這樣,就能用 foreach 來遍歷這個集合。 IEnumerator 有Current屬性,MoveNext(), Reset()兩個方法。 當 fore ...
  • 如下是我做開發這幾年經常使用一些技術和工具,當然這些技術也都是需要加強的(有些是我一直使用的,不過不深入,有些內部的原理等等不是很清楚) 前端部分: 1)HTML:網頁的核心語言,構成網頁的基礎 2)CSS:使網頁更加豐富多彩燦爛的利器 3)JavaScript:使網頁動起來的根本,加強了網頁和用戶 ...
  • 加 Golang學習 QQ群共同學習進步成家立業工作 ^-^ 群號:96933959 net import "net" net包提供了可移植的網路I/O介面,包括TCP/IP、UDP、功能變數名稱解析和Unix域socket。 雖然本包提供了對網路原語的訪問,大部分使用者只需要Dial、Listen和Acc ...
  • 誤打誤撞,解決了很重要的入門級問題,簡要記錄下. "lispbox" 官網末尾說目前暫不相容 10.4 以上系統: TODO: Compile on Mac OS X 10.4, for compatability Make separate versions for common Linux di ...
  • 這篇博客是Java經典書籍《Effective Java(第二版)》的讀書筆記,此書共有78條關於編寫高質量Java代碼的建議,我會試著逐一對其進行更為通俗易懂地講解,故此篇博客的更新大約會持續1個月左右。 第1條:考慮用靜態工廠方法代替構造器 通常情況下我們會利用類的構造器對其進行實例化,這似乎毫 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...