1. 程式人生 > >Python3x 爬取妹子圖

Python3x 爬取妹子圖

思路:1get_totalpages(url)  通過【性。感。美。女。圖】獲得該版塊的總頁數 【首頁1234567891011下一頁末頁共 21頁1034條】

2get_sercoverurl(pageurl) 版塊每一頁有50個系列的封面,獲得每個封面的地址。

3進入該封面(即系列),獲得該系列圖片的總張數【[url=]共79頁:[/url]上一頁12345678910111213下一頁】

4get_serurl(sercoverurl) 獲得每一個圖片所在頁面的地址

5urllib.request.urlretrieve(picurl, filename) 獲得圖片的下載地址。

根據網站結構

,總結了 版塊 -< 系列 -- 系列封面 -< 圖片頁面 -- 圖片下載地址 的編排規律,

其中" -< " 表示 1對多,即1個版塊有多個系列, 1個系列封面有多個圖片;

    " -- " 表示 1對1,1個系列只有1個封面, 1個圖片頁面只有1個圖片下載地址

搞清楚這些就明白哪些地方需要迴圈了。

廢話太多,直接上程式碼吧!

import urllib.request
import os
import re

def url_open(url):
    req = urllib.request.Request(url)
    req.add_header('
User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36') response = urllib.request.urlopen(url) html = response.read() return html def get_totalpages(url): #通過版塊地址獲得該版塊所有頁數(每頁有50個系列),返回值為數字 html = url_open(url).decode('
gbk') reg = r'共 <strong>(.*?)</strong>頁' totalpages = re.findall(reg,html)[0] return int(totalpages) def get_sercoverurl(pageurl): #通過頁面地址獲得該頁面下所有系列的封面地址,返回值為列表 html = url_open(pageurl).decode('gbk') reg = r'<p><a href="(.*?)"' sercoverurl = re.findall(reg, html) return sercoverurl #各個系列的封面 列表 def get_serurl(sercoverurl): #通過封面獲得該系列的所有圖片所在的頁面地址 (每個頁面有一張圖片,其地址待下一步獲取) html = url_open(sercoverurl).decode('gbk') # reg1 = r'<li><a>共(.*?)頁' totalsheets = int(re.findall(reg1, html)[0]) # 獲得該系列圖片總張數 serurls = [] serurls.append(sercoverurl) for eachsheet in range(2,totalsheets+1): serurl = sercoverurl[:-5] + '_' + str(eachsheet) + sercoverurl[-5:] serurls.append(serurl) return serurls def get_picurl(serurl): html = url_open(serurl).decode('gbk') reg = r"<img src='(.*?)'" picurl = re.findall(reg,html)[0] return picurl #只有一個地址,即封面地址 def download_cl(folder = '爬蟲youmzi'): #主程式 try: os.mkdir(folder) os.chdir(folder) except: os.chdir(folder) url = 'http://www.youmzi.com/meinv.html' totalpages = get_totalpages(url) print(totalpages) for eachpage in range(1,totalpages+1): pageurl = url[:-5] + '_'+ str(eachpage) + url[-5:] print(pageurl) sercoverurl = get_sercoverurl(pageurl) #獲得系列的封面地址 列表 print(sercoverurl) for eachsercover in sercoverurl: serurl = get_serurl(eachsercover) #返回系列的所有地址 列表 for oneser in serurl: picurl = get_picurl(oneser) print(picurl) filename = picurl.split('/')[-1] urllib.request.urlretrieve(picurl, filename) if __name__ == '__main__': download_cl()

相關推薦

Python3x 妹子

思路:1、get_totalpages(url)  通過【性。感。美。女。圖】獲得該版塊的總頁數 【首頁1234567891011下一頁末頁共 21頁1034條】 2、get_sercoverurl(pageurl) 版塊每一頁有50個系列的封面,獲得每個封面的地址。 3、 進入該封面(即系列),獲得該系列

Python協程妹子(內有福利,你懂得~)

split 基本 保存文件 切換 代碼執行 怎麽辦 什麽 head .cn 項目說明:   1、項目介紹     本項目使用Python提供的協程+scrapy中的選擇器的使用(相當好用)實現爬取妹子圖的(福利圖)圖片,這個學會了,某榴什麽的、pow(2, 10)是吧!

Python 爬蟲入門之妹子

Python 爬蟲入門之爬取妹子圖 來源:李英傑  連結: https://segmentfault.com/a/1190000015798452   聽說你寫程式碼沒動力?本文就給你動力,爬取妹子圖。如果這也沒動力那就沒救了。   GitHub 地址:&

Python-妹子(單執行緒和多執行緒版本)

一、參考文章     Python爬蟲之——爬取妹子圖片     上述文章中的程式碼講述的非常清楚,我的基本能思路也是這樣,本篇文章中的程式碼僅僅做了一些異常處理和一些日誌顯示優化工作,寫此文章主要是當做筆記,方便以後查閱,修改的地方如下: 1、異常處理

python 多程序妹子

    程式碼需要自行修改的有:     圖片儲存位置、程序池的容量(建議cpu幾個核就設定為少,我的是4核)     可以在主函式簡單修改 ''' author:James-J time:2018/09/20 version: v2

Python3爬蟲系列:理論+實驗+妹子實戰

爬蟲系列: (1) 理論 (2) 實驗 (3) 實戰 1. 準備環境 1.1 安裝CentOS 1.2 安裝Python3 1.3 安裝MongoDB 嘗試使用motor實現

萌新爬蟲的動力就是妹子!批量妹子喲!

  進群:960410445 即可獲取原始碼! 目錄 前言 Media Pipeline 啟用Media Pipeline 使用 ImgPipeline 抓取妹子圖 瞎比比與送書後話 前言 我們在抓取資料的過程中,除了要抓取

Python 妹子(注意身體/滑稽)

... #!/usr/bin/env python import urllib.request from bs4 import BeautifulSoup def crawl(url): headers = {'User-Agent':'Mozilla/5.0 (Windows; U; W

Python又來妹子啦,一個T的硬盤都不夠用

chrome 三方 動態加載 python bsp img 第三方庫 post請求 mode 淘女郎爬蟲,可動態抓取淘女郎的信息和照片。 需要額外安裝的第三方庫 requests pip install requests pymongo pip install p

教你用Python妹子APP

教你用Python爬美之圖APP(妹子圖) 爬取結果 程式只運行了2h,最後認為程式沒有問題了就關了(我可不是去殺生去了…… 執行環境 Python 3.5+ Windows 10 VSCode 如何使用 下載專案原始碼 https

Python爬蟲——利用requests模組妹子

近期學了下python爬蟲,利用requests模組爬取了妹子圖上的圖片,給單身狗們發波福利,哈哈!順便記錄一下第一次發部落格。 話不多說,進入正題 開發環境 python 3.6 涉及到的庫 requests lxml 先上一波爬取的截圖

小白爬蟲第一彈之抓妹子【更新版】

mozilla dir mac print 1.0 bsp 實例化 com def 最近對爬蟲感興趣,參考了 http://cuiqingcai.com/3179.html 這篇文章,琢磨的小試身手,但是按照原文發現圖片下載下來全是打不開的圖片,這不是我想要的啊,嘗試

風景

urllib sky from eve request blog %d ret form import urllib.requestfrom lxml import etreeimport requestsdef A(a,b,c): per=100.0*a*b/c

用Python多線程實現生產者消費者模式網的表情圖片

Python什麽是生產者消費者模式 某些模塊負責生產數據,這些數據由其他模塊來負責處理(此處的模塊可能是:函數、線程、進程等)。產生數據的模塊稱為生產者,而處理數據的模塊稱為消費者。在生產者與消費者之間的緩沖區稱之為倉庫。生產者負責往倉庫運輸商品,而消費者負責從倉庫裏取出商品,這就構成了生產者消費者模式。 生

網上的高清圖片

pri highlight compile n) find class retrieve trie ror 貼下源碼 配置環境:python3.5 win10 import urllib.request import re#遍歷其中端午節的海報網址頁數 for i in

python3爬蟲 -----息-------www.doutula.com

run __init__ args gin uid == utf-8 date src 普通爬取: 1 # -*- coding:utf-8 -*- 2 # author:zxy 3 # Date:2018-10-21 4 import requests 5 f

妹子圖片

[] 爬取 user pict html pen chdir star download 學習練習爬蟲的時候寫了一個爬取妹子的小程序玩玩。 from bs4 import BeautifulSoup import requests import os from threa

Python網PS素材圖片

宣告:僅用於學習交流,請勿用於任何商業用途!感謝大家! 需求:在千圖網http://www.58pic.com中的某一板塊中,將一定頁數的高清圖片素材爬取到一個指定的資料夾中。    分析:以數碼電器板塊為例 檢視該板塊的每一頁的URL:

Python妹子上傳到wordpress並使用阿里雲oss

#!/usr/bin/env python # coding=utf-8 import os import time import threading, datetime, hashlib import oss2 import phpserialize from multi

網表情包之後鬥會輸?不存在的

    前言: 本文非常淺顯易懂,可以說是零基礎也可快速掌握。如有疑問,歡迎留言,筆者會第一時間回覆。 一、分析表情包網址     1、進入鬥圖啦網址,點選**“最新表情”**,再點選第二、第三頁,得出規律