鱼C论坛

 找回密码
 立即注册
查看: 1946|回复: 1

[作品展示] 彼岸网美女图片全页面抓取

[复制链接]
发表于 2021-12-10 12:35:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
此处仅是彼岸网http://www.netbian.com/美女分类下的所有图片,为单线程。该代码仅供参考学习!!!
如果代码看不懂可参看该视频:https://www.ixigua.com/692231935 ... a67588147c3e9368ceb

结果展示:


代码部分:
  1. import requests
  2. from bs4 import BeautifulSoup
  3. import os
  4. import atexit
  5. import time

  6. headers = {
  7.     'user-agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36',
  8. }


  9. # ********该函数用来打印日志的,大家忽略就行************
  10. # 程序停止会自动计算下载总时间和下载速度
  11. @atexit.register
  12. def calc_time():
  13.     """
  14.     日志
  15.     :return:
  16.     """
  17.     # 计算下载总时间
  18.     end = time.time()
  19.     duration = end - start
  20.     hour = duration // 3600
  21.     minute = (duration - hour * 3600) // 60
  22.     seconds = int(duration - hour * 3600 - minute * 60)

  23.     # 计算下载速度
  24.     size = 0  # 单位是字节
  25.     files = os.listdir("image")
  26.     for file in files:
  27.         try:
  28.             size += os.path.getsize("./image/" + file)
  29.         except Exception as e:
  30.             print(e)
  31.     # 单位是M
  32.     size = size / 1024 / 1024
  33.     # 单位是kb/s
  34.     speed = size * 1024 / duration

  35.     print("\033[31m=" * 100)
  36.     print("一共下载了{}个文件, 大小为{:.2f}M".format(len(files), size))
  37.     print("下载速度为{:.2f} kb/s".format(speed))
  38.     print("耗时{}小时{}分钟{}秒".format(hour, minute, seconds))
  39.     print("=" * 100)
  40. # ****************************************************************


  41. # 请求url,得到html代码
  42. def get_url(url) -> str:
  43.     response = requests.get(url, headers=headers)
  44.     return response.content.decode("gbk")


  45. # 下载图片
  46. def download(url):
  47.     print("正在下载链接地址为 %s 的图片" % url)
  48.     # 二进制文件
  49.     content = requests.get(url, headers=headers).content
  50.     # url的格式 http://img.netbian.com/file/2021/0122/2861bb5516bd41b0dfe79f6a9538892d.jpg
  51.     # 取最后一个"/"之后的字符串作为文件名
  52.     filename = url.split("/")[-1]
  53.     # 拼写完整的图片路径,其中这里的"."表示当前这个文件所在的目录
  54.     file_path = "./image/" + filename
  55.     # 将二进制数据写入文件
  56.     with open(file_path, 'wb') as f:
  57.         f.write(content)


  58. if __name__ == '__main__':
  59.     start = time.time()
  60.     # 判断当前目录下是否有image文件夹,没有就创建
  61.     if not os.path.exists("image"):
  62.         os.mkdir("image")

  63.     for page in range(1, 164):
  64.         if page == 1:
  65.             url = 'http://www.netbian.com/meinv/'
  66.         else:
  67.             url = 'http://www.netbian.com/meinv/index_%d.htm' % page

  68.         html = get_url(url)
  69.         # 利用BeautifulSoup构建解析器
  70.         soup = BeautifulSoup(html, "lxml")

  71.         # 选取所有的图片所在的块区域
  72.         aElements = soup.select('.list a')
  73.         hrefs = [i["href"] for i in aElements]

  74.         for href in hrefs:
  75.             if href.startswith("/desk"):
  76.                 # url2是缩略图对应的链接
  77.                 url2 = "http://www.netbian.com" + href

  78.                 # 请求缩略图链接得到页面内容
  79.                 html2 = get_url(url2)
  80.                 soup2 = BeautifulSoup(html2, "lxml")
  81.                 src = soup2.select('.pic img')[0]["src"]
  82.                 download(src)
复制代码
展示1.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-12-16 19:20:14 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-30 22:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表