Python 爬取优美图库图片
# !/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 爬取优美图库图片相关推荐
- python 爬取5566图库图片
python 爬取5566图库图片 1 import requests 2 import random 3 import re 4 import time 5 import os 6 from bs4 ...
- python爬取优美图库
学了一段时间python,最近学习了一些python爬虫,今天写了一个爬取优美图库的的一段代码,下面给大家分享一下. 先看一下爬取的结果: 这段代码使用了下面的一些包,我们需要提前进行安装,在终端使用 ...
- python爬取优美图库海量图片,附加代码,一键爬取
优美高清图片为大家提供高清美女套图赏析,非高清不录入,大家的网速要给力. 今天教大家爬取优美图库网站中高质量的图片!! 简单易上手哦~ 使用工具: Python 3.6 pycharm 相关环境: r ...
- python第一天----爬取优美图库的图片
python第一天----爬取优美图库的图片 首先我们需要爬取的步骤: 1.选择爬取的网页,这里我选取的是https://www.umei.net/bizhitupian/,直接爬取的首页第一页的图片 ...
- Python使用bs4爬取优美图库
'''爬取优美图库 ''' import requests from bs4 import BeautifulSoup import time from tqdm import tqdm# 爬取页面源 ...
- Python爬取百度图库
Python爬取百度图库 页面分析 通过Chrome 的开发者模式,我们可以很发现 百度图库是通过ajax 加载图片的. 每一次都会发送一个请求:https://image.baidu.com/sea ...
- python爬取贴吧图片_Python爬取贴吧多页图片
Python爬取贴吧图片都只能爬取第一页的,加了循环也不行,现在可以了. #coding:utf-8 import urllib import urllib2 import re import os ...
- Python爬取自然风景图片代码
Python爬取自然风景图片代码 \qquad 需要用到python的etree库和requests库,需要提前下载安装. from lxml import etree import requests ...
- python爬取网站的图片
python爬取网站的图片 本次爬取图片所需要用到的库:Requests库,BeautifulSoup库,正则表达式,os库. 思路:先爬一张图片,再爬一个网站的图片 先爬一张图片: 首先要得到这张图 ...
最新文章
- 课本学习笔记5:第七章 20135115臧文君
- [云炬创业管理笔记]第二章成为创业者讨论3
- android 通过webview调起支付宝app支付
- mysql权限系统的工作原理_Mysql权限系统工作原理
- 在sqlServer中把数据导出为insert脚本
- 继Nat Friedman离开Github之后,Xamarin联合创始人离开微软
- 家庭上网用路由器和ADSL的连接
- 西门子G120变频器初始化参数设置
- 万字讲述如何通过Doris构建数据中台
- 范式通俗理解:1NF、2NF、3NF和BNCF
- oracle数据块的大小设置,Oracle数据块的大小
- 基于深度学习的动物识别方法研究与实现
- 从一个例子开始体验轻量级类隔离容器 SOFAArk | SOFAChannel#11 直播整理
- Go 使用 buger/jsonparser 优化反序列化性能
- 如何下载GitHub网站上的代码的方法(未完,更新中。。。)
- xv6源码阅读——中断与异常
- 数据集WordNet-WN18
- Python学习 matplotlib库 霍兰德人格分析雷达图
- Linux在线安装软件的方法(部分)
- 绝好用的迈科威(主控芯片)量产工具