马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
此处仅是彼岸网http://www.netbian.com/美女分类下的所有图片,为单线程。该代码仅供参考学习!!!
如果代码看不懂可参看该视频:https://www.ixigua.com/692231935 ... a67588147c3e9368ceb
结果展示:
代码部分:import requests
from bs4 import BeautifulSoup
import os
import atexit
import time
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36',
}
# ********该函数用来打印日志的,大家忽略就行************
# 程序停止会自动计算下载总时间和下载速度
@atexit.register
def calc_time():
"""
日志
:return:
"""
# 计算下载总时间
end = time.time()
duration = end - start
hour = duration // 3600
minute = (duration - hour * 3600) // 60
seconds = int(duration - hour * 3600 - minute * 60)
# 计算下载速度
size = 0 # 单位是字节
files = os.listdir("image")
for file in files:
try:
size += os.path.getsize("./image/" + file)
except Exception as e:
print(e)
# 单位是M
size = size / 1024 / 1024
# 单位是kb/s
speed = size * 1024 / duration
print("\033[31m=" * 100)
print("一共下载了{}个文件, 大小为{:.2f}M".format(len(files), size))
print("下载速度为{:.2f} kb/s".format(speed))
print("耗时{}小时{}分钟{}秒".format(hour, minute, seconds))
print("=" * 100)
# ****************************************************************
# 请求url,得到html代码
def get_url(url) -> str:
response = requests.get(url, headers=headers)
return response.content.decode("gbk")
# 下载图片
def download(url):
print("正在下载链接地址为 %s 的图片" % url)
# 二进制文件
content = requests.get(url, headers=headers).content
# url的格式 http://img.netbian.com/file/2021/0122/2861bb5516bd41b0dfe79f6a9538892d.jpg
# 取最后一个"/"之后的字符串作为文件名
filename = url.split("/")[-1]
# 拼写完整的图片路径,其中这里的"."表示当前这个文件所在的目录
file_path = "./image/" + filename
# 将二进制数据写入文件
with open(file_path, 'wb') as f:
f.write(content)
if __name__ == '__main__':
start = time.time()
# 判断当前目录下是否有image文件夹,没有就创建
if not os.path.exists("image"):
os.mkdir("image")
for page in range(1, 164):
if page == 1:
url = 'http://www.netbian.com/meinv/'
else:
url = 'http://www.netbian.com/meinv/index_%d.htm' % page
html = get_url(url)
# 利用BeautifulSoup构建解析器
soup = BeautifulSoup(html, "lxml")
# 选取所有的图片所在的块区域
aElements = soup.select('.list a')
hrefs = [i["href"] for i in aElements]
for href in hrefs:
if href.startswith("/desk"):
# url2是缩略图对应的链接
url2 = "http://www.netbian.com" + href
# 请求缩略图链接得到页面内容
html2 = get_url(url2)
soup2 = BeautifulSoup(html2, "lxml")
src = soup2.select('.pic img')[0]["src"]
download(src)
|