首先分析页面URL,形如http://dbmeizi.com/category/[1-14]?p=[0-476]

图片种类对应编号

1:'性感', 2:'有沟', 3:'美腿', 4:'小露点',
6:'所有男', 7:'肌肉男', 8:'清新男', 9:'有意思' ,
10:'所有', 11:'小清新', 12:'文艺', 13:'文艺男', 14:'美臀'

图片地址形如data-bigimg="http://pic.dbmeizi.com/pics/nn2nn2nn/p12378370.jpg"

-----源代码meizi.py-----

 1 import re, os, time
 2 import urllib.request
 3
 4 def getHtml(url):#取得网页的html纯文本
 5     return urllib.request.urlopen(url).read().decode('utf-8')
 6
 7 def download(url, filename):#将文件下载到本地
 8     urllib.request.urlretrieve(url, filename)
 9
10 if __name__ == '__main__':
11     print('---豆瓣妹子抓图机---')
12     dic = {1:'性感', 2:'有沟', 3:'美腿', 4:'小露点',
13            6:'所有男', 7:'肌肉男', 8:'清新男', 9:'有意思' ,
14            10:'所有', 11:'小清新', 12:'文艺', 13:'文艺男', 14:'美臀'}
15     for i in dic.keys():
16         print('{:<15}'.format(str(i)+'--'+dic[i]), end='')
17         if i%4==0: print()
18     category = int(input('\n请输入抓取类别:'))
19     pageNo1 = int(input('请输入抓取页面起始编号(0-476):'))#2014.5.5正好476页
20     pageNo2 = int(input('请输入抓取页面终止编号(0-476):'))
21     for no in range(pageNo1, pageNo2+1):
22         url = 'http://dbmeizi.com/category/{}?p={}'.format(category, no)
23         html = getHtml(url)
24         reMeizi = r'(?<=bigimg=").+jpg'
25         pics = re.findall(reMeizi, html)
26         folder = 'D:/DBMeizi/{}/{}/'.format(dic[category], no)
27         if not os.path.exists(folder):
28             os.makedirs(folder)
29         logfile = open(folder+'log.txt', 'wt')
30         logfile.write('图片来源:'+ url +'\n图片链接:\n')
31         for pic in pics:
32             print('正在下载', pic)
33             try:
34                 download(pic, folder+pic[-13:])
35             except:
36                 print('下载出错')
37                 logfile.write(pic + ' 下载出错!\n')
38                 continue
39             logfile.write(pic+'\n')
40         logfile.close()
41         print('下载' + dic[category] +'['+ str(no) +']结束。')
42         time.sleep(1)
43     print('全部任务结束。')
44     

转载于:https://www.cnblogs.com/baijifeilong/p/3708342.html

Python -- 网络编程 -- 抓取网页图片 -- 豆瓣妹子相关推荐

  1. Python利用bs4批量抓取网页图片并下载保存至本地

    Python利用bs4批量抓取网页图片并下载保存至本地 使用bs4抓取网页图片,bs4解析比较简单,需要预先了解一些html知识,bs4的逻辑简单,编写难度较低.本例以抓取某壁纸网站中的壁纸为例.(b ...

  2. python爬虫好友图片_利用Python网络爬虫抓取微信好友的签名及其可视化展示

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

  3. python抓取图片_Python3简单爬虫抓取网页图片

    现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2), 所以我用Python3的语法写了一个简单抓取网页图片的实例,希望能够帮助到 ...

  4. python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?

    原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...

  5. python爬虫微信朋友圈怎么发文字_如何利用Python网络爬虫抓取微信朋友圈的动态(上)...

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  6. python抓取微信朋友圈动态_2018最全如何利用Python网络爬虫抓取微信朋友圈的动态...

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  7. 2018最全如何利用Python网络爬虫抓取微信朋友圈的动态

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  8. 如何利用Python网络爬虫抓取微信朋友圈的动态(上)

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  9. python正则表达式提取电话号码_利用正则表达式编写python 爬虫,抓取网页电话号码!...

    利用正则表达式编写python 爬虫,抓取网页联系我们电话号码!这里以九奥科技(www.jiuaoo.com)为例,抓取'联系我们'里面的电话号码,并输出. #!/usrweilie/bin/pyth ...

  10. python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

最新文章

  1. 决策树算法(四)——选取最佳特征划分数据集
  2. PHP开发移动端接口
  3. vim中设置python代码缩进为4个空格
  4. VS2019 配色_NBA球员上脚:基德穿AJ13湖人配色,莫兰特的保罗乔治4代!
  5. java使用jstat分析内存
  6. 如何理解虚表及其计算含虚函数的类的大小
  7. Java类类getDeclaredMethod()方法及示例
  8. 用JS写的无缝滚动特效
  9. 联想x100e linux,进化之道!ThinkPad X100e全球首发测试
  10. iso 9000下载_ISO 9000 | 软件工程
  11. 亲测:真正免费的音频转文字软件
  12. Windows7系统的70个小技巧
  13. java压缩linux上的文件,java linux下文件压缩
  14. Java 安全套接字编程以及keytool 使用最佳实践
  15. JAVA程序运行原理——知其然,而知其所以然
  16. html中搜索框提示语,请输入您要搜索的内容(自定义Win10搜索框提示语的技巧)...
  17. 【C语言】指针进阶第五站,函数指针
  18. 为什么需要Code Review?
  19. 深入Netty源码解析内存优化技巧
  20. ESP32 模拟键盘的简单操作 (ESP32 for Arduino)

热门文章

  1. 人口logistic模型公式_人口的logistic模型
  2. 杭电acm2012 素数判定
  3. 单片机原理及接口技术第1章
  4. 华为海思总裁深夜发文:进入至暗时刻,技术“备胎”将全部转正应敌
  5. python批量打印mathcad_全能批量打印工具-兼容所有打印机
  6. 病毒分析之中华吸血鬼
  7. win7家庭普通版计算机桌面图标,Win7家庭普通版更改桌面图标方案
  8. python画航线图_pyecharts绘制geo地图
  9. BlackBerry HTML5 WebWorks 平台下,让BB10应用连接上BBM
  10. 中国地图json 文件下载