鱼C论坛

 找回密码
 立即注册
查看: 2318|回复: 3

[作品展示] 【抓妹子图】写的python抓煎蛋妹子图无聊图程序,跟大家分享一下。

[复制链接]
发表于 2017-3-16 15:09:10 | 显示全部楼层 |阅读模式

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

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

x
006g34NHgy1fdi7bpdnlzj30m80xctbu.jpg
这几天学习学习爬虫觉得特别有意思。今天学到抓妹子图,然后在还没看视频的情况下,自己先写了个。
配合easygui. 直接点选下载无聊图还是妹子图,选择需要下载多少页(不是网页的那个页数哈),然后选择保存路径。
先上效果:
选择要下载的类型(上面一个是妹子图,下面一个是无聊图)
QQ图片20170316145704.png
输入要下载的页数:
C}X1LIJO@7J@C7K`RV7DQ6R.png
选择要保存的路径:
C_%NXI~3B)WW%2Y0$RV)L_6.png

等待~~~~
然后最后结果:

1489647830(1).png

然后上代码(你本地安装了easygui就可以直接用了哈):
  1. import  urllib.request,re,easygui as g
  2. def main():
  3.     url = g.choicebox('请选择要下载的类型(1.妹子,2.无聊)','选择',['http://jandan.net/ooxx','http://jandan.net/pic'])
  4.     data_header = [{},{'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}]
  5.     req = urllib.request.Request(url, data_header[0], data_header[1])
  6.     response = urllib.request.urlopen(req)
  7.     html = response.read().decode('utf-8')
  8.     pages = re.search(r'<span class="current-comment-page">\[(.+?)\]</span>', html)
  9.     pages = pages.group(1)
  10.     # 以上步骤初始化页数获取最新的页
  11.     want_pages = g.enterbox('请输入要下载的页数(1页起步)')
  12.     want_pages = int(want_pages)
  13.     get_img(want_pages,pages,url,data_header)
  14. def get_img(want_pages,pages,url,data_header):
  15.     filedir = g.diropenbox('选择保存路径','保存为')
  16.     url_orignal = url
  17.     for i in range(want_pages):
  18.         url = url + '/page-' + str(int(pages)-i) + '#comments'
  19.         req = urllib.request.Request(url, data_header[0], data_header[1])
  20.         response = urllib.request.urlopen(req)
  21.         html = response.read().decode('utf-8')
  22.         img_url = re.findall('<img src="(.+?)" /><br />', html)
  23.         save_img(img_url,filedir)
  24.         url = url_orignal
  25. def save_img(img_url,filedir):
  26.     for each in img_url:
  27.         img_url = 'http:' + each
  28.         img_url_ext = img_url.split('.')
  29.         img_url_ext_sub = img_url_ext[2].split('/')
  30.         img_file = urllib.request.urlopen(img_url).read()
  31.         with open(filedir + '\\%s.%s'%(img_url_ext_sub[2],img_url_ext[3]),'wb') as f:
  32.             f.write(img_file)
  33. if __name__ == '__main__':
  34.     main()
复制代码


再来一张高清图片:
006g34NHgy1fdi7bubjvmj31e00xc7b9.jpg

最后~有鱼币的小伙伴送点鱼币呀~嘻嘻
@冬雪雪冬 @鱼的泪 @jerryxjr1220 @...公子 @不二如是 @李金龙 @lumber2388779

评分

参与人数 3荣誉 +12 鱼币 +12 贡献 +6 收起 理由
鱼的泪 + 5 + 5 + 3
lumber2388779 + 2 + 2 小营养快线
李金龙 + 5 + 5 + 3 营养快线

查看全部评分

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

使用道具 举报

发表于 2017-3-16 16:28:42 | 显示全部楼层
我营养跟不上呀!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-17 09:44:33 | 显示全部楼层
零度非安全 发表于 2017-3-16 16:28
我营养跟不上呀!!!

营养快线喝起啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-20 11:29:45 | 显示全部楼层
没人顶,自己来恢复。貌似那个正则表达式有问题~下载下来的gif图不能动~在img标签中gif图和其他图的格式貌似不一样,不好使用正则表达式,所以采取匹配前面的[查看原图]。
这样就一个正则表达式就能匹配了
新的那一行代码贴上来:
  1. img_url = re.findall('</span><p><a href="(.+?)" target="_blank" class="view_img_link">\[查看原图\]</a><br />',html)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-28 09:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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