1. 程式人生 > >讓你營養跟不上的圖片爬取

讓你營養跟不上的圖片爬取

import requests
from lxml import etree
import os
def headers(referer):#圖片的下載可能和頭部的referer有關,所以將referer設為變換值,以躲避反扒
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
        'Referer': '{}'.format(referer)}
    
    return headers

def Tuji(pag):#找圖集
    fullurl = 'http://www.mzitu.com/page/{}/'.format(pag)
    
    shouye_html = requests.get(fullurl)
    
    shouye_html_text = shouye_html.text
    
    shouye_ele = etree.HTML(shouye_html_text)
    
    tj_list = shouye_ele.xpath('//*[@id="pins"]/li/a/@href')#找每頁的圖集url
    
    Tuji_url_list = []
    
    for tj_url in tj_list:
        
        Tuji_url_list.append(tj_url)
    return Tuji_url_list
def gettuji_info(tj_url_list):#圖集的url列表 收集圖集的相關資訊
    
    for tj_url_1 in tj_url_list: #tj_url_1 --- > http://www.mzitu.com/146823
        
        tj_html = requests.get(tj_url_1, headers=headers(tj_url_1))
        
        tj_html_text = tj_html.text
        
        tj_ele = etree.HTML(tj_html_text)
        
        img_title = tj_ele.xpath('//h2[@class="main-title"]/text()')[0] 
        # 圖集名稱
        max_pag_list = int(tj_ele.xpath('/html/body/div[2]/div[1]/div[4]/a[5]/span/text()')[0])  # 找最大頁數
        
        os.mkdir(img_title)
        
        for i in range(1, int(max_pag_list + 1)):
            
            tj_url_2 = tj_url_1 + '/'+str(i) 
            #tj_url_2 ---> http://www.mzitu.com/146823 + pag
            tj_html = requests.get(tj_url_2, headers=headers(tj_url_1))
            
            tj_html_text = tj_html.text
            
            tj_ele = etree.HTML(tj_html_text)
            
            img_url = tj_ele.xpath('//div[@class="main-image"]/p/a/img/@src')[0] # 從不同的tj_url_2中找圖片的url
            print('正在下載'+img_title+'第'+str(i)+'張')
            
            with open(img_title+'/'+str(i)+'.jpg', "wb+") as jpg:
                jpg.write(requests.get(img_url, headers=headers(tj_url_2)).content)
                
            jpg.close()
            
if __name__ == '__main__':
    pags = int(input('你想搞幾頁的嘿嘿?'))
    
    for pag in range(1,pags+1):
        
        gettuji_info(Tuji(pag))

相關推薦

營養圖片

import requests from lxml import etree import os def headers(referer):#圖片的下載可能和頭部的referer有關,所以將referer設為變換值,以躲避反扒 headers = {

老司機程序員教用Python獲取種子,源源不絕的那種!營養

想要 方式 種子 class 發現 效果 不兼容 進行 道理 種子/DHT 通過磁力就可以獲取種子文件從而進行下載,這跟直接使用種子下載時一個道理的,只是少了從磁力到種子文件的一個過程而已。 peer: 一個 TCP 端口上監聽的客戶端/服

【煩惱】感覺自己時代的步伐了

智能 時代 bsp dba 人工 不出 公司 增刪 崗位 我的崗位是DBA,可是我感覺我的能力還是停留在數據的增刪查改上。這對於已經工作一年多的我來說無疑是悲哀的。 對於我們公司即將要上線的3.0, 我感覺壓力很大。怕做不出成績來。 想要提升,但是又覺得無從下手。 在這

理論了:開始復習理論基礎

數據傳輸 地址尋址 鏈路層 上層 封裝 telnet 復雜 pdu 應用層 計算機網絡組成: 硬件 軟件 目的:實現資源共享、信息傳遞。 計算機網絡功能: 數據通信、資源共享、增加數據可靠性、提高系統處理能力 網絡協議與標準協議:一組控制數據通信的規則標

CSS 黑魔法小技巧,少寫必要的JS,代碼更優雅

3D splay conf fill page under 隔離 popover 運行 首頁 登錄註冊 CSS 黑魔法小技巧,讓你少寫不必要的JS,代碼更優雅 閱讀 8113 收藏 927 2017-09-26 原文鏈接:git

Smobiler 4.4 更新預告 Part 1(Smobiler能在Visual Studio開發APP)

p s source info 設置 屬性 mbr thum 詳情 thumb 在4.4版本中,大家對產品優化的一些建議和意見進行了相應的優化和修復,同時,還新增了一些令人激動的功能和插件。 下面先為大家介紹4.4版本中Smobiler的優化和修復: 優化 1, P

Smobiler 4.4已正式發布!(Smobiler能在Visual Studio開發APP)

pre 直接 upd 安裝 組件 data .apk 新的 cat Smobiler 4.4已經正式發布,還不快來看看?原文地址:https://www.smobiler.com/portal.php?mod=view&aid=53這次更新要感謝我們的用戶,在使用s

上課開會時因為記筆記而速度?錄音轉文字一鍵搞定!

信很多人都會遇到這樣的問題,在上課或開會的時候,總是有很多很重要的點需要我們記錄下來,但是一旦把筆記記清楚了,老師或老闆估計已經講到別處去了,我們也很容易跟不上速度。   今天小編就來告訴大家如何解決這樣的問題,讓我們既能擁有完整筆記,也能跟得上老師或老闆的速度! 一、錄

【匯編語言】屬性字節-----如何在屏幕輸出的東西花裏胡哨

idt 雞蛋 http p s 雞蛋黃 實驗 display ali pan 實驗9中,我的代碼中 用mov dl,xyh 實現輸出的格式控制,現在具體介紹一下。 mov dl,xyh中的 xy 是個16進制的數, 第一個x 控制的是背景顏色,這裏面還

mysql聯查中使用if和group by會的結果想要的

mysql中的if語句遇到統計count group by的時候會出現不準確的情況,原因是分組後if條件的結果以第一條為準,不會跟著分組   例如: SELECT SQL_NO_CACHE t1.*,t2.nick_name,t2.avatar,IF(t1.user_id=104080,

很喪能力又,應該如何在職場上生存?

上一次,我們提到了skill will matrix(能力意願矩陣),對其中的三種情況(高意願高技能,高意願低技能,低意願高技能)都有很好的解決方案。但是對於低意願低技能(low will low skill),該模型並沒有給出很好的解決方案,原話為“Bilamana kondisinya tidak bis

JS 實現3D立體效果的首頁輪播圖(瞬間的網站高大,逼格滿滿)

            var HR = {                $: function(i) {                    return document.getElementById(i)                },                $$: function(c

Python抖音機器人制作!有看完的小姐姐

  抖音做最近最火的APP,特別是裡面的小姐姐特別多,每天花在看抖音搜尋的時間很多。  為了讓我們快速搜尋到顏值特別高的小姐姐,現在教你如何用程式設計做一個自動搜尋,自動點贊,自動關注的機器人,讓你空閒的時候不再花太多時間去搜索小姐姐。  使用的程式語言是Python,再加上

心田花開教學快速掌握心田的百合花寫法與修辭手法運用

心田上的百合花中的詞語用法、修辭手法、寫作手法等知識點都是小學考試的必考點,心田花開教學從心田上的百合花文章中提煉出了詞語用法、修辭手法、寫作手法等知識點,讓你快速掌握心田上的百合花的學習重點及知識點。 一、熟讀文章是掌握心田上的百合花的重要基礎 《心田上的百合花》全文: 在一個偏僻遙遠的

以太坊fast sync時,currentBlockhighestBlock

來自issue https://github.com/ethereum/go-ethereum/issues/16875 對很多人來說,同步以太坊是一個痛點,所以我會試著詳細描述發生在幕後的事情,這樣可能會少一些困惑。 Geth的當前默認同步模式稱為快速同步。不是從創世塊開始並重新處理所

30個常見的大資料面試題 --的薪資更一層

30個常見的大資料面試題: 包含spark、scala、storm、hadoop等常見的大資料處理工具; 常用的分散式資料庫如hbase、MongoDB、Redis等; 其他常用的java基礎、linux相關技術等 1.scala 語言有什麼特點,什

會Python爬蟲?教一個通用爬蟲思路輕鬆網頁資料

  前言 其實爬蟲的思路很簡單,但是對於很多初學者而言,看得懂,但是自己寫的時候就不知道怎麼去分析了!說實話還是寫少了,自己不要老是抄程式碼,多動手! 本人對於Python學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習Python。歡迎各位

的Mac在依賴於ssh軟體

使用Mac的同學,很多時候,在糾結於使用什麼軟體登陸伺服器。 SecureCRT是一款優秀的軟體,但99$的價格讓人望而卻步。至於Crack版本嘛,資源不好找,而且會出現各種問題。接下來,給大家推薦一

如何才能的webview往瀏覽器跳轉

   webView.setWebViewClient(new WebViewClient(){   public boolean shouldOverrideUrlLoading(WebView v

如何建立靜態庫 與 使用靜態庫聯調、製作靜態庫載入圖片的問題

如何製作靜態庫 在此博文已經寫的很好了 http://www.cnblogs.com/superhappy/archive/2013/05/27/3102629.html 如何進行聯調那? 由於本人不會使用 博文中得 截圖 所以用語言概述下把 1.、 在一個工程中加入靜態庫