鱼C论坛

 找回密码
 立即注册
查看: 8600|回复: 133

[作品展示] 萌新献丑,爬取整套高清写真原图的爬虫

  [复制链接]
发表于 2020-2-18 21:39:21 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Levin-e 于 2020-3-24 10:25 编辑

第二弹已发布
https://fishc.com.cn/thread-162027-1-1.html


这是我第一次发帖,在论坛逛了好久,看到许多大佬们写的爬虫,自己也想试一试
于是用了一天时间写了这个爬虫,基本功能可以实现,但是细节上还有待优化,希望有大佬可以修改完善
额外依赖的包有requests和bs4中的BeautifulSoup

网页来源:https://www.nvshens.net/
爬取的是高清原图,不是缩略图
运行过程中console会显示下载信息,提示一个error不用担心,连续出现两个error则说明特定的一张图片下载失败
这个bug有待改进
具体使用方法在代码的注释中
最后放出源码:
  1. import re, math
  2. import requests
  3. from bs4 import BeautifulSoup

  4. if __name__ == '__main__':
  5.     headers = {
  6.         'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36 Edg/80.0.361.54'
  7.     }
  8.     first_url = 'https://www.nvshens.net/g/31118/'  #需手动更改链接,参照这个样式
  9.     r = requests.get(first_url,headers=headers)
  10.     html = r.text
  11.     bf = BeautifulSoup(html,'lxml')
  12.     page_info = bf.find('div',id='dinfo').find('span').get_text()   #获取套图照片总数以计算页码
  13.     pic_num = re.findall(r'\d+',page_info)  
  14.     page_num = math.ceil(int(pic_num[0])/3)
  15.     print('该套图总共有%d页' %page_num)
  16.     print('该套图包含%s' %page_info)

  17.     img_url = bf.find('div', class_='gallery_wrapper').find_all('img')
  18.     for each in img_url:
  19.         name = each.get('alt') + '.jpg'
  20.         img_src = each.get('src')
  21.         replace_src = img_src.replace('/s','')
  22.         path = r'E:\Movie\photo\azhua'  #自定义存储位置
  23.         file_name = path + '\\' + name
  24.         try:
  25.             # print(replace_src)
  26.             req1 = requests.get(replace_src,headers=headers)
  27.             with open(file_name, 'wb') as f:
  28.                 f.write(req1.content)
  29.             print('%s is download' %file_name)
  30.             time.sleep(3)
  31.             req1 = requests.get(first_url,headers=headers)
  32.         except:
  33.             print('Error')
  34.     page = 2
  35.     while page<=page_num:
  36.         url = 'https://www.nvshens.net/g/31118/%d.html'%page  #手动设置最终页码,以及图片地址
  37.         req = requests.get(url,headers=headers)
  38.         html = req.text
  39.         bf = BeautifulSoup(html, 'lxml')
  40.         #page_url = 'https://www.nvshens.net' + bf.find('div', id_='pages').find('a', class_='a1')
  41.         #print(page_url)
  42.         img_url = bf.find('div', class_='gallery_wrapper').find_all('img')
  43.         # print(img_url)
  44.         for each in img_url:
  45.             name = each.get('alt') + '.jpg'
  46.             img_src = each.get('src')
  47.             replace_src = img_src.replace('/s','')
  48.             path = r'E:\'  #自定义存储位置
  49.             file_name = path + '\\' + name
  50.             try:
  51.                 # print(replace_src)
  52.                 req1 = requests.get(replace_src,headers=headers)
  53.                 with open(file_name, 'wb') as f:
  54.                     f.write(req1.content)
  55.                 print('%s is download' %file_name)
  56.                 time.sleep(3)
  57.                 req1 = requests.get(url,headers=headers)
  58.             except:
  59.                 print('Error')
  60.         page=page+1
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-19 10:18:14 | 显示全部楼层
优秀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-19 10:48:24 | 显示全部楼层
自己顶一下,欢迎交流
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-19 11:02:40 | 显示全部楼层
感谢分享~学习爬虫奋斗中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-19 11:32:37 | 显示全部楼层
2333
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2020-2-20 19:03:52 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-20 20:10:27 | 显示全部楼层
蒂花之秀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-20 20:14:23 | 显示全部楼层
想看看高清图,裤子都脱了,发现需要回复,生气。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-20 20:27:48 From FishC Mobile | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-20 21:24:12 From FishC Mobile | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-21 17:05:30 | 显示全部楼层
感谢分享~学习爬虫奋斗中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-21 17:15:34 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-21 19:31:12 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-22 17:03:00 | 显示全部楼层
12321
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 09:41:19 | 显示全部楼层
向你学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 09:50:26 | 显示全部楼层
为了看隐藏
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 09:53:25 | 显示全部楼层
楼主啊,我的版本是3.7,复制过来运行不了呀,我就想看图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 10:46:28 | 显示全部楼层
爱我的违法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 13:45:39 | 显示全部楼层
本帖最后由 Levin-e 于 2020-2-23 13:47 编辑
PythonLV 发表于 2020-2-23 09:53
楼主啊,我的版本是3.7,复制过来运行不了呀,我就想看图


emmm,你是依赖的包没有安装,还是没有设定图片保存的路径,我也是3.7的,想看图的话代码里面的地址打开就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 13:46:29 | 显示全部楼层
妲树 发表于 2020-2-20 20:14
想看看高清图,裤子都脱了,发现需要回复,生气。

哈哈哈哈哈,动动手,勤劳致富
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 17:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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