鱼C论坛

 找回密码
 立即注册
查看: 803|回复: 0

[作品展示] 堆糖图片爬虫升级版

[复制链接]
发表于 2018-7-22 22:25:36 | 显示全部楼层 |阅读模式

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

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

x
  1. import os
  2. import json
  3. import requests


  4. def get_img_content(img_url):
  5.     web = requests.get(img_url)
  6.     return web.content

  7. def get_json(url,num,dir_path,number):
  8.     web = requests.get(url)
  9.     html = web.text
  10.     my_dict = json.loads(html)
  11.     #链接的最终结果:my_dict['data']['object_list'][0]['photo']['path']

  12.     for i in my_dict['data']['object_list']:
  13.         if number <= num:
  14.             my_link = i['photo']['path']
  15.             img_path = my_link.split('/')[-1]
  16.             img_content = get_img_content(my_link)
  17.             with open(dir_path + img_path,'wb') as f:
  18.                 f.write(img_content)
  19.             print('正在下载第%d张' % number)
  20.             number += 1
  21.         else:
  22.             break
  23.     return number

  24. def main(keyword,i,number):
  25.     dir_path = 'D://堆糖/' #后面有个斜杠

  26.     if not os.path.exists(dir_path):
  27.         os.mkdir(dir_path)

  28.     url = 'https://www.duitang.com/napi/blog/list/by_search/?kw=%s&type=feed&start=%d' % (keyword, i)
  29.     number = get_json(url,num,dir_path,number)
  30.     return number


  31. if __name__ == '__main__':
  32.     keyword = input('请输入需要查找的关键字,如:fate:')
  33.     num = int(input('请输入需要下载的张数,如:24张:'))
  34.     temp_n = 0
  35.     number = 1
  36.     for i in range(-1,num//24):
  37.         number = main(keyword,temp_n,number)
  38.         temp_n += 24
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 08:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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