1. 程式人生 > >A784586的專欄:任何事都存在 Plan B !

A784586的專欄:任何事都存在 Plan B !

python爬取mm131圖片

python3

#!/usr/bin/python
#encoding: utf-8
"""
http://www.mm131.com
"""
import urllib.request
import re
import os
import time
import socket
from hashlib import md5
#001獲得整個頁面
def get_html(url):
    socket.setdefaulttimeout(10)
    papg = urllib.request.urlopen(url)
    html = papg.read()
    html = html.decode("gbk")
    #html = unicode(html, "gbk").encode("utf8")
    return html
	
#002   獲得總頁碼數
def get_page_num(html,url_num):
    szurlre = re.compile(r'<a href=\'list_'+str(url_num)+'_(\d+).html\' class="page-en">末頁')
    szresult = re.findall(szurlre, html)
    if len(szresult) == 0:
        page_num = 0
    else:
        page_num = int(szresult[0])
    print("pagenum:",page_num)
    return page_num
	
#003 獲得相簿
def get_ablum_list(base_url,html):
	#http://www.mm131.com/qipao/2288.html
    print(base_url)
    szurlre = re.compile(base_url+r'(\d+.html)')
    ablum_list = re.findall(szurlre, html);
    print("----------len-----------:",len(ablum_list))
    return ablum_list	
	
#004 獲得單頁的圖片
def get_photo(html, photo_num):
    imgre = re.compile(r'(http://\S+.jpg)')
    imglist = re.findall(imgre, html)
    #print("len_imglist",len(imglist))
    for imgurl in imglist:
        try:
            socket.setdefaulttimeout(2)
            #urllib.request.urlretrieve(imgurl, unicode('.\\photo\\%s\%05d.jpg'%(dir, photo_num), "utf8"))
            store_path='.\\mm131\\' + '\\'+ md5(imgurl.encode("utf8")).hexdigest() + "." + 'jpg'
            #print("#######:",store_path)
            urllib.request.urlretrieve(imgurl, store_path)
            print("正在下載第%s張圖片"%photo_num)
            photo_num = photo_num + 1
        except:
            continue
    return photo_num	
	
try:
    os.mkdir("mm131")
except:
    print ("目錄已經存在,繼續下載")
"""
#test
html=get_html("http://www.mm131.com/chemo/")
get_page_num(html,3)
"""
url_list=["http://www.mm131.com/qingchun/","http://www.mm131.com/xiaohua/","http://www.mm131.com/chemo/","http://www.mm131.com/qipao/","http://www.mm131.com/mingxing/","http://www.mm131.com/xinggan/"]
url_num=1
for baseurl in url_list:
	base_url=baseurl
	print(base_url)
	html=get_html(base_url)
	print(url_num)
	page_num=get_page_num(html,url_num)
	for i in range(1,page_num):
		try:
			if i!=1: 
				baseurl=baseurl+"list_"+str(url_num)+"_"+str(i)+".html"
				html=get_html(baseurl)
			else:
				pass
			ablumlist=get_ablum_list(base_url,html)
			for find_url in ablumlist:
				photo_html=get_html(base_url+find_url)	
				photo_num=0
				photo_num = get_photo(photo_html, photo_num)
		except:
			continue		
	url_num=url_num+1   
	   
	   
	   
	   
	   

	


相關推薦

A784586專欄何事存在 Plan B

python爬取mm131圖片 python3 #!/usr/bin/python #encoding: utf-8 """ http://www.mm131.com """ import urllib.request import re import os import

來自程式設計師的一天,網友哭笑原來網上是騙人的

前面看了一箇中國籍女程式設計師在美國工作一天的視訊,讓很多國內程式設計師羨慕嫉妒恨 ,引起了大家非常強烈的反響,網友感嘆人家那工作真是太輕鬆,簡直就是在享受生活! 那麼,今天我們來描述下,中國程式設計師的一天是怎樣的: CIODE是一家 IT 公司的 軟體工程師,主要工作是開發與維護公司核心

zhoubl668的專欄遠帆,夢之帆

堆和棧的區別在哪裡?哪些變數會在棧中分配空間,哪些變數會在堆中分配空間?         ---------------------------------------------------------------         1、申請方式            sta

正非所有公司是管理第一,技術第二(沒有一流管理,領先的技術就會退化;有一流管理,即使技術二流也會進步)

日本 高中生 成員 臺階 人生 集中 百萬 參加 一個 這是早年華為總裁任正非與參加培訓的新員工的交流紀要,任正非幽默、風趣、坦誠,也略帶一絲無奈,其中的很多觀點仍然具有思考和借鑒意義。1、你們下去碰到的領導並不是你想像的那麽好,他們有時將鼻涕抹在袖口上,有時不穿襪子,不像

搭建一個Web Test Plan

相同 order ng- use 原因 ear tps group add 參考:http://jmeter.apache.org/usermanual/build-web-test-plan.html 場景 5個用戶並發測試百度搜索,有兩個請求,一個請求搜索“你好”,一個

【Java並發編程】之十六深入Java內模型——happen-before規則及其對DCL的分析(含代碼)

無需 bit 對象引用 說了 final 緩存 機器 通過 round 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17348313 happen—before規則介紹 Java語言中有一個“先行發生

【Java並發編程】之十七深入Java內模型—內操作規則總結

tle 沒有 article 類型 javase 感知 執行引擎 要求 lock 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17377197 主內存與工作內存 Java內存模型的主要目標是定義程序中

tensorflow 1.0 學習模型的保與恢復(Saver)

clas truncated 中間變量 lac tdd mini b- oat utf-8 將訓練好的模型參數保存起來,以便以後進行驗證或測試,這是我們經常要做的事情。tf裏面提供模型保存的是tf.train.Saver()模塊。 模型保存,先要創建一個Saver對象:如

mlock家族鎖定物理內【轉】

簡單 %0 ive alloc 即使 編程 string類 第一個 lang 轉自:http://blog.csdn.net/fjt19900921/article/details/8074541 鎖住內存是為了防止這段內存被操作系統swap掉。並且由於此操作風險高,僅超

SQL Server性能調優資源管理之內管理篇(上)

方式 hive 服務 ces inpu 都是 功能 一個 type http://www.cnblogs.com/caspnet/archive/2011/02/21/1959539.html 對SQL Server來說,最重要的資源是內存、Disk和CPU,其中內存又是

黃錦宣馬雲說了,認為好做的事情賺不了錢

簡單的思維+死腦筋=成功最近一段時間一直圍繞著“用戶思維”運營的經驗來寫文章,發現很多人對於“用戶思維”可以說完全陌生。 並且對於我關於用戶思維的經驗文章沒有太大的興趣,我在各大平臺發的關於“用戶思維”運營的文章,閱讀量也寥寥無幾。 記得馬雲老大說過這樣的話:如果一件事情大部分的人都贊成,那麽這件事就不值得做

Pocket輕松保文章和視頻稍後閱讀

使用方法 查看 找到 安裝 桌面 擴展名 參考 瀏覽器中 height 最近碰到一個看似普通人的牛人。。。有嚴格的自我管理能力,熱愛分享。每次資料都整理的超好。然而我自己每次都整理的相當混亂,有時候會一次性打開多個chrome標簽頁,但是我們也許並沒有時間把這些標簽頁中的內

大數據Parquet文件儲格式

調用 大小 計算框架 保存 處理 -s backward init 編程 一、Parquet的組成 Parquet僅僅是一種存儲格式,它是語言、平臺無關的,並且不需要和任何一種數據處理框架綁定,目前能夠和Parquet適配的組件包括下面這些,可以看出基本上通常使用的查詢引

李開復華盛頓郵報專欄發錢解決AI失業潮

2-2 都在 替代 客戶 人在 ews 狀況 職業 屬於 昨天,創新工場創始人兼 CEO 李開復博士在《華盛頓郵報》撰文稱,人工智能革命即將到來,這可能是一個最好的時代,也可能是最壞的時代。   好與壞,將取決於我們如何解決人工智能的副作用之一——失業問題。   根據牛津

業主曝外包裝修的黑幕所有環節是陷阱

家居華家居裝飾蘇州華家居裝飾有限公司是一家集設計,硬裝,軟裝等為一體的,整體家裝服務商,公司整合國內外一線品牌材料,專為業主朋友提供一站式裝修解決方案。 主編樂樂:生活家的帶鹽人,性格外向活潑,能聊能BB,好奇心強,對生活有著滿滿的正能量,偶爾也自戀一下下~~ 樂樂呢,今天看到廣州日報的報道,廣州某業主趙先

SDS趨勢之一軟件定義儲目前趨勢

sds 趨勢 序言:軟件定義世界,數據驅動未來。正如Netscape創始人、矽谷著名投資人馬克?安德森(Marc Andreessen)在《軟件正在吞噬整個世界》所述,從生活、電影、農業到國防,軟件無所不在。未來十年,預計將有更多的行業被軟件所瓦解,數據也將會越來越多。在互聯網、物聯網、大數據的伴隨下

SDS趨勢之四軟件定義儲延長數據價值

sds 延長數據 前兩天看到西瓜哥發布的一篇文章名為《SERVER SAN一定比陣列便宜嗎?請看5年TCO分析》,其中分析了幾家公司產品在數據歸檔方面5年內的TCO分析。我非常贊同西瓜哥的看法,這種場景的未來一定是Sserver SAN的,這個結論應該不用懷疑。對於長期歸檔,應該用10年的跨度來對比比

java 線程問題,寫一個死鎖(原理只有互相等待對方放棄資源才會產生死鎖)

() ati ron args start print println class log package com.swift; public class DeadLock implements Runnable { private boolean flag;

轉-NET(C#)線程本地儲(Thread-Local Storage)之ThreadStatic, LocalDataStoreSlot和ThreadLocal<T>

輸出 修改 pla star 目錄 div .net 4.0 current cor NET(C#):線程本地存儲(Thread-Local Storage)之ThreadStatic, LocalDataStoreSlot和ThreadLocal<T>