# !/usr/bin/env python
# -*-coding:utf-8-*-
# date :2021/7/23 17:53
# author:Sabo"""爬取优美图库 -> 图说天下 -> 性感美女专栏的所有图片说明:程序运行后会将图片保存在当前目录下的umeiPictures文件夹中,无需提前新建文件夹,没有会自动创建文件夹
"""import requests
from bs4 import BeautifulSoup as BS
import ostotalDirName = "umeiPictures"
header = {"Connection": "close"
}
#
roorUrlLists = ["https://www.umei.net/bizhitupian/meinvbizhi/xingganmeinv.htm","https://www.umei.net/bizhitupian/meinvbizhi/xingganmeinv_2.htm","https://www.umei.net/bizhitupian/meinvbizhi/xingganmeinv_3.htm","https://www.umei.net/bizhitupian/meinvbizhi/xingganmeinv_4.htm","https://www.umei.net/bizhitupian/meinvbizhi/xingganmeinv_5.htm","https://www.umei.net/bizhitupian/meinvbizhi/xingganmeinv_6.htm"]
rootUrlHead = "https://www.umei.net/"def getUrls(rootUrl):'''参数:优美图库的根目录功能:从根目录获取当前页的其他图片的子目录的网址返回参数:子目录网址的列表:param rootUrl::return:'''urlsList = []response = requests.get(rootUrl)if response.status_code != 200:print("Get list error!")return urlsListresponse.encoding = 'utf-8'txt = response.textmainPage = BS(txt, 'html.parser')childPages = mainPage.find('div', attrs={"class": "TypeList"}).find_all("a")# childPages = childPages._find_all('a')for index in range(childPages.__len__()):urlsList.append(rootUrlHead + childPages[index].get("href"))# print(childPages)# print(urlsList)return urlsListdef getTitle(downloadUrl):response = requests.get(downloadUrl)if response.status_code != 200:return Noneresponse.encoding = 'utf-8'mainPage = BS(response.text, 'html.parser')childPage = mainPage.find("div", attrs={"class": "ArticleTitle"})title = childPage.find("strong").textreturn titledef checkDir(dirName):"""参数:文件加名称功能:在umeiPictures文件夹下检查是否存在dirName名称的文件夹存在返回参数:无 (不存在则直接创建):param dirName::return:"""dirs = os.listdir("./" + totalDirName)if dirName not in dirs:os.makedirs("./" + totalDirName + "/" + dirName)def checkPictureExist(dirName, picName):"""参数:文件夹名称和文件夹里的图片名称功能:在umeiPictures文件夹的picName文件夹里查看picName的图片是否存在返回参数:存在返回True,不存在返回False:param dirName::param picName::return:"""dirs = os.listdir("./" + totalDirName+"/"+dirName)if picName in dirs:print("%s already existed!" % (picName))return Truereturn Falsedef getPictures(downloadUrl, titleStr, indexStr, dirName):'''参数:单个系列的根网址,功能:进行相关图片的下载返回参数:无:param webSite::return:'''response = requests.get(downloadUrl, header, timeout=10)if response.status_code != 200:print("Get pictures error!")return Noneresponse.encoding = 'utf-8'picMainPage = BS(response.text, 'html.parser')picChildPage = picMainPage.find('div', attrs={"class": "ImageBody"})p = picChildPage.find("p", align="center")img = p.find("img")src = img.get("src")# print(src)# 下载图片imgDownloadResponse = requests.get(src)if imgDownloadResponse.status_code != 200:print("Download pictures error!")return NoneimgDownloadResponse.encoding = 'utf-8'# img_name = src.split("/")[-1]  # url中的最后一个/以后的内容img_name = titleStr + "_" + indexStr + ".jpg"with open(totalDirName+ "/" + dirName + "/" + img_name, mode="wb") as f:f.write(imgDownloadResponse.content)  # 图片内容写入到文件print("over!", img_name)return Truedef checkMainDir():""":return:"""dirs = os.listdir("./")if totalDirName not in dirs:os.mkdir(totalDirName)print("Now is creating dir:{0}!".format(totalDirName))return Falseelse:print("{0} is already exist!".format(totalDirName))return Trueif __name__ == '__main__':downloadFlag = TruemaxWebLength = 20webLists = []pictureAlreadyExistFlag = FalsecheckMainDir()for rootIndex in range(roorUrlLists.__len__()):urlLists = getUrls(rootUrl=roorUrlLists[rootIndex])# 遍历父辈网址for parentUrlListIndex in range(urlLists.__len__()):downloadFlag = True# 获取每个标题title = getTitle(downloadUrl=urlLists[parentUrlListIndex])# 为每个章节建立单独的文件夹checkDir(dirName=title)# 利用父辈标签生成各个子页面webLists.clear()webLists.append(urlLists[parentUrlListIndex])# 生成所有的子页面for index in range(2, maxWebLength):webLists.append(urlLists[parentUrlListIndex].replace(".htm", "_" + index.__str__() + ".htm"))# 利用子页面完成图片的下载for index in range(webLists.__len__()):# 检查该图片是否已经下载pictureAlreadyExistFlag = checkPictureExist(dirName=title,picName=title + "_" + (index + 1).__str__() + ".jpg")if downloadFlag is True and pictureAlreadyExistFlag is False:downloadAns = getPictures(downloadUrl=webLists[index], indexStr=(index + 1).__str__(),titleStr=title, dirName=title)if downloadAns is not True:downloadFlag = Falsebreak

Python 爬取优美图库图片相关推荐

  1. python 爬取5566图库图片

    python 爬取5566图库图片 1 import requests 2 import random 3 import re 4 import time 5 import os 6 from bs4 ...

  2. python爬取优美图库

    学了一段时间python,最近学习了一些python爬虫,今天写了一个爬取优美图库的的一段代码,下面给大家分享一下. 先看一下爬取的结果: 这段代码使用了下面的一些包,我们需要提前进行安装,在终端使用 ...

  3. python爬取优美图库海量图片,附加代码,一键爬取

    优美高清图片为大家提供高清美女套图赏析,非高清不录入,大家的网速要给力. 今天教大家爬取优美图库网站中高质量的图片!! 简单易上手哦~ 使用工具: Python 3.6 pycharm 相关环境: r ...

  4. python第一天----爬取优美图库的图片

    python第一天----爬取优美图库的图片 首先我们需要爬取的步骤: 1.选择爬取的网页,这里我选取的是https://www.umei.net/bizhitupian/,直接爬取的首页第一页的图片 ...

  5. Python使用bs4爬取优美图库

    '''爬取优美图库 ''' import requests from bs4 import BeautifulSoup import time from tqdm import tqdm# 爬取页面源 ...

  6. Python爬取百度图库

    Python爬取百度图库 页面分析 通过Chrome 的开发者模式,我们可以很发现 百度图库是通过ajax 加载图片的. 每一次都会发送一个请求:https://image.baidu.com/sea ...

  7. python爬取贴吧图片_Python爬取贴吧多页图片

    Python爬取贴吧图片都只能爬取第一页的,加了循环也不行,现在可以了. #coding:utf-8 import urllib import urllib2 import re import os ...

  8. Python爬取自然风景图片代码

    Python爬取自然风景图片代码 \qquad 需要用到python的etree库和requests库,需要提前下载安装. from lxml import etree import requests ...

  9. python爬取网站的图片

    python爬取网站的图片 本次爬取图片所需要用到的库:Requests库,BeautifulSoup库,正则表达式,os库. 思路:先爬一张图片,再爬一个网站的图片 先爬一张图片: 首先要得到这张图 ...

最新文章

  1. 课本学习笔记5:第七章 20135115臧文君
  2. [云炬创业管理笔记]第二章成为创业者讨论3
  3. android 通过webview调起支付宝app支付
  4. mysql权限系统的工作原理_Mysql权限系统工作原理
  5. 在sqlServer中把数据导出为insert脚本
  6. 继Nat Friedman离开Github之后,Xamarin联合创始人离开微软
  7. 家庭上网用路由器和ADSL的连接
  8. 西门子G120变频器初始化参数设置
  9. 万字讲述如何通过Doris构建数据中台
  10. 范式通俗理解:1NF、2NF、3NF和BNCF
  11. oracle数据块的大小设置,Oracle数据块的大小
  12. 基于深度学习的动物识别方法研究与实现
  13. 从一个例子开始体验轻量级类隔离容器 SOFAArk | SOFAChannel#11 直播整理
  14. Go 使用 buger/jsonparser 优化反序列化性能
  15. 如何下载GitHub网站上的代码的方法(未完,更新中。。。)
  16. xv6源码阅读——中断与异常
  17. 数据集WordNet-WN18
  18. Python学习 matplotlib库 霍兰德人格分析雷达图
  19. Linux在线安装软件的方法(部分)
  20. 绝好用的迈科威(主控芯片)量产工具

热门文章

  1. 《长安十二时辰》,作为程序员,看完我震惊了!涉及通信、云计算、大数据等!...
  2. 个人网站,有哪些虚拟主机值得购买?
  3. python 抓取猫眼电影评分
  4. iphone live photo没有声音
  5. Photoshop菜单_中英文对照
  6. 计算机链接限制无线网络,Win7无线网络连接受限制或无连接的解决办法
  7. linux数据库哪个难,11 月数据库排名公布:前三难撼动
  8. 前端Hack之XSS攻击个人学习笔记
  9. Mac OS X 键盘字母键和数字键的切换
  10. NodeBB实现登录企业账号系统(简单实现,非CAS登录)