|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)
复制代码 |
-
|