鱼C论坛

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

[作品展示] vmgirls小爬虫

[复制链接]
发表于 2021-6-25 16:14:56 | 显示全部楼层 |阅读模式
https://www.vmgirls.com/
匹配10个项目下载自动创建目录保存图片,过滤已下载过的。
还有很多地方可以改进,比如用selenium来 加载更多 下载更多项 等坛友们添加了 有兴趣的话


  1. # -*-coding = utf-8 -*-
  2. # @Time : 2021/6/24 16:16
  3. # @Author :
  4. # @File : vmgirls.py
  5. # @Software : PyCharm
  6. import requests
  7. import time
  8. import re
  9. import os
  10. from tkinter import *
  11. from tqdm import trange


  12. def requestURL(url):
  13.     headers = {
  14.         'referer':'https://www.vmgirls.com/',
  15.         'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'
  16.     }
  17.     response = requests.get(url,headers=headers)
  18.     return response


  19. def getTitleImgUrl(html):
  20.     title_pattern = re.compile(r'<title>(.*?) 丨 唯美女生</title>',re.S)
  21.     title = re.findall(title_pattern,html)[0]
  22.     url_pattern = re.compile(r'<a href="//(.*?)" alt=".*?" title=".*?">',re.S)
  23.     img_url_list = re.findall(url_pattern,html)
  24.     for i in range(0,len(img_url_list)):
  25.         img_url_list[i] = "http://"+img_url_list[i]
  26.     return [title,img_url_list]


  27. def mkdir(directory_name):
  28.     if os.path.exists(r'./vmgirls'):
  29.         pass
  30.     else:
  31.         try:
  32.             os.makedirs(r'./vmgirls')
  33.         except Exception as e:
  34.             print(e)
  35.     if os.path.exists(fr'./vmgirls/{directory_name}'):
  36.         pass
  37.     else:
  38.         try:
  39.             os.makedirs(fr'./vmgirls/{directory_name}')
  40.         except Exception as e:
  41.             print(e)


  42. def save_img(url):
  43.     res = requestURL(url).text
  44.     data_list = getTitleImgUrl(res)
  45.     try:
  46.         mkdir(data_list[0])
  47.     except Exception as e:
  48.         print(e)
  49.     current_path = os.getcwd() + '/vmgirls/' + data_list[0] + '/'
  50.     for i in range(0, len(data_list[1])):
  51.         file_name = data_list[0] + str(i) + ".jpg"
  52.         res = requestURL(data_list[1][i])
  53.         try:
  54.             with open(current_path + file_name, 'wb') as f:
  55.                 f.write(res.content)
  56.             print("保存成功:" + file_name)
  57.         except Exception as e:
  58.             print(e)


  59. def getFlist():
  60.     list = []
  61.     for root, dirs, files in os.walk('vmgirls'):
  62.         list.append(os.path.basename(root))
  63.     return list


  64. def main():
  65.     url = "https://www.vmgirls.com/"
  66.     res = requestURL(url).text
  67.     url_pattern = re.compile(r'<a href=(.*?) title="(.*?)" class="list-title text-md h-2x">.*?</a>',re.S)
  68.     url_list = re.findall(url_pattern,res)
  69.     # url_pattern = re.compile(r'<a href=(\d{5}?).html title="(.*?)".*?>', re.S)
  70.     # url_list = re.findall(url_pattern, res)
  71.     dir_list = getFlist()
  72.     for i in trange(0,len(url_list)):
  73.         dir_name = url_list[i][1]
  74.         if dir_name in dir_list:
  75.             continue
  76.         else:
  77.             url = 'https://www.vmgirls.com/'+url_list[i][0]
  78.             save_img(url)

  79. if __name__ == '__main__':
  80.     main()
复制代码

购买主题 已有 1 人购买  本主题需向作者支付 2 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-26 06:14:21 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 00:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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