[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创教程] python抓取美女图.py

本帖最后由 codegay 于 2016-5-29 15:24 编辑

python抓取美女图.py

由于是只用标准库,装了python3运行本代码就能下载到多多的美女图...
写出代码前面部分的时候,我意识到自己的函数设计错了,强忍继续把代码写完。
测试发现速度一般,200K左右的下载速度,也没有很好的错误处理。不过还是基本上能用。以后继续改进。

写出抓取东西的程序,比写其它程序要开心很多。^_^,大家也来试试写一个?
  1. """
  2. python抓取性感尤物美女图.py
  3. 2016年5月4日 00:51:00 codegay
  4. 参考资料: Python3学习笔记(urllib模块的使用)
  5. http://www.cnblogs.com/Lands-ljk/p/5447127.html
  6. 以下例子是python2的代码,并且用到lxml,requests 库
  7. 我用python3标准库和正则写一个下载全站美女图的程序
  8. 使用python来批量抓取网站图片
  9. http://www.cnblogs.com/TeyGao/p/5225940.html
  10. """
  11. print("程序运行中...")
  12. import re
  13. from urllib import request
  14. import os
  15. from pprint import pprint
  16. from time import sleep
  17. rooturl="http://www.xgyw.cc/"
  18. def getclass():
  19.     rec=re.compile('''align=center\>\<a href="(/\w+/)\"\>(.+)\</a\>''')
  20.     try:
  21.         txt=request.urlopen(rooturl).read().decode("gbk")
  22.         fl=rec.findall(txt)
  23.     except:
  24.         print("错误")
  25.         sleep(1)
  26.         
  27.     print("分类:")
  28.     pprint(fl)
  29.     return fl
  30. fenlei=getclass()#下载所有分类下的图片
  31. #fenlei=[getclass()[-1]]#只下载推女郎
  32. def getpagelist():
  33.     plist=[]
  34.     for f,n in fenlei:
  35.         rec=re.compile('''({}page_\d+?\.html)'''.format(f))
  36.         try:
  37.             txt=request.urlopen(rooturl+f).read().decode("gbk")
  38.             t=sorted(set(rec.findall(txt)+[f]))
  39.             plist+=t
  40.         except:
  41.             print("错误",e)
  42.             sleep(1)
  43.             
  44.     #print("page_list:")
  45.     #pprint(plist)
  46.     return plist
  47. pagelist=getpagelist()
  48. def getalbumlist():
  49.     albumlist=[]
  50.     for r in pagelist:
  51.         print(rooturl+r)
  52.         try:
  53.             txt=request.urlopen(rooturl+r).read().decode("gbk")
  54.             for x in re.findall(r'''href=(/(\w+)/(\2)\d+.html)''',txt):
  55.                 albumlist+=[x[0]]
  56.         except:
  57.             print("getalbumlist错误")
  58.             sleep(1)
  59.     return albumlist
  60. albumlist=getalbumlist()
  61. def getfphoto():
  62.     for r in albumlist:
  63.         try:
  64.             txt=request.urlopen(rooturl+r).read().decode("gbk")
  65.             result=re.findall(r'''(/(\w+)/(\2)\d+_?\d*.html)''',txt)
  66.             print(t)
  67.         except:
  68.             sleep(1)
  69.             
  70.             pass
  71.         for x in result:
  72.             try:
  73.                 html=request.urlopen(rooturl+x[0]).read().decode("gbk")
  74.                 jpgresult=re.findall('''src=\"(/uploadfile.*?\d+/\w+\.jpg)\"''',html)
  75.                 print(jpgresult)
  76.             except:
  77.                 sleep(1)
  78.             for h in jpgresult:
  79.                 try:
  80.                     request.urlretrieve(rooturl+h,os.path.basename(h))
  81.                 except:
  82.                     print(3)
  83.                     sleep(1)
  84. getfphoto()
复制代码
2

评分人数

去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

回复 3# happy886rr


技巧欠缺加上之前没有写过。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 5# broly


    带带我
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

改了。
丑陋的代码简直是不让能向人提起的黑历史。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

不错,进步很比我的都快。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

返回列表