鱼C论坛

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

[作品展示] 爬取电脑美女壁纸图片

[复制链接]
发表于 2021-5-25 15:27:29 | 显示全部楼层 |阅读模式

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

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

x
  1. import urllib.request
  2. import os
  3. import re


  4. def url_open(url):
  5.     req = urllib.request.Request(url)
  6.     req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0')
  7.    
  8.     # proxies = [103.138.164.106:80]
  9.    
  10.    
  11.     response = urllib.request.urlopen(url)
  12.     html = response.read()

  13.     print('url',url)
  14.     return html

  15. def get_page(url):
  16.     html = url_open(url).decode('GBK')
  17.     p = r'<a href="/bz/nxxz/shxz/(\d+)\.html" target="_blank">'
  18.     # 待会用正则
  19.     a = re.findall(p,html)
  20.     # b = a.find('shxz/')
  21.     # c = a.find('.html')

  22.    
  23.     # a = html.find('<li><a href=')
  24.     # b = html.find('target="_blank">',a)
  25.     print('正则提取的尾号',a)
  26.     # return html[a:b]
  27.     return a

  28. def find_imgs(url):
  29.     html = url_open(url).decode('GBK')
  30.     img_addrs = []
  31.     p = r'img id="bigImg" src="(.+\.jpg)"'
  32.     a = re.findall(p,html)
  33.     for i in a:
  34.         img_addrs.append(i)
  35.     # a = html.find('"bigImg" src')
  36.     # while a != -1:
  37.     #     b = html.find('jpg',a,100)
  38.     #     if b !=-1:
  39.     #         img_addrs.append(html[a+14:b+3])
  40.     #     else :
  41.     #         b = a + 14
  42.     #     a = html.find('"bigImg" src',b)

  43.     for each in img_addrs:
  44.         print('具体网址',each)
  45.     return img_addrs


  46. def save_imgs(folder,img_addrs):
  47.     for each in img_addrs:
  48.         filename = each.split('/')[-1]
  49.         with open(filename,'wb') as f:
  50.             img = url_open(each)
  51.             f.write(img)


  52. def My_ll(url,i):
  53.     html = url_open(url).decode('GBK')
  54.     q = r'<a href="/bz/nxxz/shxz/%d.html">[\u4e00-\u9fa5]+</a>\((\d+)[\u4e00-\u9fa5]\)'%(int(i))
  55.     fie = re.findall(q,html)
  56.     for ss in fie:
  57.         fie = int(ss)
  58.     print('这组有几张',fie)

  59.     return fie



  60. def download_mm(folder='XXOO',pages=10):
  61.     os.mkdir(folder)
  62.     os.chdir(folder)

  63.     url = 'http://www.jj20.com/bz/nxxz/shxz/'
  64.     x = get_page(url)

  65.     for i in x:
  66.         print('插入URL的尾号',i)
  67.         page_num = i    # 大尾号
  68.         dudu = My_ll(url,i)

  69.         if dudu != []:
  70.             
  71.             for ll in range(1,dudu+1):
  72.                 if ll == 1:
  73.                     page_url = url + page_num + '.html'
  74.                     print('page_url0',page_url)
  75.                 else :
  76.                     page_url = url + page_num + '_' + str(ll) + '.html'
  77.                     print('page_url1-',page_url)
  78.                 img_addrs = find_imgs(page_url)
  79.                 save_imgs(folder,img_addrs)
  80.         else:
  81.             print('所有下载已完成!')            

  82.         

  83. if __name__ == '__main__' :
  84.     download_mm()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-28 09:30:46 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-14 16:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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