美女壁纸批量下载之普通篇
爱美之心人皆有之,看到漂亮的美女壁纸总想据为己有,偶然间发现一个比较不错的网站,遂,爬
网站:4K 美女图片
一个页面 21 张图片,一共 195 页,想想就开心
废话不多说,撸起袖子就是干,代码如下:
import requests
import os
import re
import time
class DownLoad_Imgs():
"""下载图片"""
def __init__(self, path):
# 主页URL
self.basic_url = 'http://pic.netbian.com'
# 要下载的图片网页
self.html_url = "http://pic.netbian.com/4kmeinv/"
# 请求头
self.header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
}
# 图片保存位置
self.path = path
def get_images_info(self, url):
"""
获取本URL页面所有图片详情页面的URL
:param url: 即将下载图片页面的URL
:return: URL列表
"""
resp = requests.get(url, headers=self.header)
content = resp.text
path = '<a href="(/tupian.+?)" target="_blank">'
path = re.compile(path, re.M)
url_list = path.findall(content)
view_urls = []
for url in url_list:
u = self.basic_url + url
view_urls.append(u)
return view_urls
def get_images(self, view_url):
"""
获取图片URL以及标题
:param view_url: 图片详情页面的URL
:return: 图片URL以及名称
"""
path = '<img src="(.+?)" data-pic=".+?title="(.+?)"'
path = re.compile(path)
resp = requests.get(view_url, self.header)
content = resp.content.decode("gbk")
pic_url, pic_title = path.findall(content)[0]
return pic_url, pic_title
def download(self, pic_url_title):
"""
下载图片
:param pic_url_title: 图片URL及标题
:return:
"""
pic_url, pic_title = pic_url_title
# 下载
pic_resp = requests.get(self.basic_url + pic_url, self.header)
image_path = self.path + os.sep + str(pic_title) + '.jpg'
print(pic_url, pic_title)
with open(image_path, 'wb') as f:
f.write(pic_resp.content)
def run(self):
for i in range(1, 196):
# 拼接URL
if i == 1:
url = dl.html_url
else:
url = dl.html_url + "index_" + str(i) + ".html"
# 获取图片详情页面URL
view_urls = dl.get_images_info(url)
# 获取高清图片URL及标题
for view_url in view_urls:
pic_url_title = dl.get_images(view_url)
# 下载图片
dl.download(pic_url_title)
print("第%s页, 耗时%s秒" % (i, time.time() - t))
if __name__ == '__main__':
t = time.time()
images_path = "./美女"
if not os.path.exists(images_path):
os.makedirs(images_path)
dl = DownLoad_Imgs(images_path)
dl.run()
print("total cost:", time.time() - t)
运行效果:
可以发现,下载了 36 页的时候,已经花费了 719 秒了,平均下载一页需要 719/36 秒,也就是说,全部下载结束需要 719/36*195 秒,相当于一个多小时,我的天,好像速度有点儿慢啊,所以说,这一篇只是普通篇
不要仗着我离不开你们,你就可以为所欲为 😳
你猜啊
说破了你也不会离开我们😎
你天天宅家里就干这事,你家里人知道么 😉
看破不说破,我们还是好朋友
你天天宅家里就干这事🤣