所用Python环境为:python 3.3.2   用到的库为:urllib.request    re

废话不多说,先上代码:

  1. import urllib.request
  2. import re
  3.  
  4. #获得当前页面的页数page_name
  5. def get_pagenum(url):
  6. req = urllib.request.Request(url)
  7. req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36')
  8. res = urllib.request.urlopen(req)
  9. html = res.read().decode('utf-8')
  10. p = r'<span class="current-comment-page">[^"]+</span>'
  11. temp = re.search(p,html)
  12. page_num = temp.group()[36:39]
  13. return page_num
  14.  
  15. #将此页面上的图片写入我们的mm文件夹中
  16. def get_img(page_url):
  17. req = urllib.request.Request(page_url)
  18. req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36')
  19. res = urllib.request.urlopen(req)
  20. html = res.read().decode('utf-8')
  21. p = r'<img src="([^"]+\.jpg)"'
  22. url_list = re.findall(p,html)
  23. num = 0
  24. for each in url_list:
  25. file = open('C:/Users/lenovo/Desktop/mm/'+each[-8:]+'.jpg','wb')
  26. if each[0:5] == 'http:':
  27. res = urllib.request.urlopen(each)
  28. else:
  29. res = urllib.request.urlopen('http:'+each)
  30. file.write(res.read())
  31. file.close()
  32.  
  33. #只能直接运行
  34. if __name__ == '__main__':
  35. url = 'http://jandan.net/ooxx/'
  36. page_num = get_pagenum(url)
  37. for i in range(10): #抓取了十个页面上美女图片
  38. page_url = url + 'page-'+str(page_num)+'#comments'
  39. get_img(page_url)
  40. page_num = int(page_num) - 1
  41.  
  42. #下面是写正则的时候方便看所以粘贴过来的连接
  43. #<img src="//ws3.sinaimg.cn/mw600/006wUWIjgy1fgxrw8goikj30hs0qodh7.jpg" style="max-width: 480px; max-height: 750px;">
  44.  
  45. #http://jandan.net/ooxx/page-143#comments
  46.  
  47. #<span class="current-comment-page">[141]</span>
  48.  
  49. # http://wx3.sinaimg.cn/mw600/661eb95cly1fgioxk7mk3j20xc1e01f1.jpg
  50.  
  51. #<img src="//wx1.sinaimg.cn/mw600/006wUWIjgy1fgxg2yj5f3j30g70s6dgw.jpg" style="max-width: 480px; max-height: 750px;">

结果如下:

由于时间原因,我只抓取了“煎蛋网”上的十个页面的美女图片罢了,大家可以更改其中的循环次数,可以抓取很多,这里我只抓取了250个图片,一共51.2kb,哈哈,可以很好的欣赏美女图片了,看的都要流鼻血了。。。

当然,此程序还是不够完善,只是我初学python网络爬虫的小作品罢了,以后再些更加完善的。接下来的一段时间真的得好好准备期末考试和考研了,加油!

参考来源:  https://zhuanlan.zhihu.com/p/26442105

Note:没有经过我的同意,请勿随便转载!谢谢。

用python来抓取“煎蛋网”上面的美女图片,尺度很大哦!哈哈的更多相关文章

  1. Python Scrapy 爬取煎蛋网妹子图实例(一)

    前面介绍了爬虫框架的一个实例,那个比较简单,这里在介绍一个实例 爬取 煎蛋网 妹子图,遗憾的是 上周煎蛋网还有妹子图了,但是这周妹子图变成了 随手拍, 不过没关系,我们爬图的目的是为了加强实战应用,管 ...

  2. Python 爬虫 爬取 煎蛋网 图片

    今天, 试着爬取了煎蛋网的图片. 用到的包: urllib.request os 分别使用几个函数,来控制下载的图片的页数,获取图片的网页,获取网页页数以及保存图片到本地.过程简单清晰明了 直接上源代 ...

  3. python爬虫–爬取煎蛋网妹子图片

    前几天刚学了python网络编程,书里没什么实践项目,只好到网上找点东西做. 一直对爬虫很好奇,所以不妨从爬虫先入手吧. Python版本:3.6 这是我看的教程:Python - Jack -Cui ...

  4. Python Scrapy 爬取煎蛋网妹子图实例(二)

    上篇已经介绍了 图片的爬取,后来觉得不太好,每次爬取的图片 都在一个文件下,不方便区分,且数据库中没有爬取的时间标识,不方便后续查看 数据时何时爬取的,所以这里进行了局部修改 修改一:修改爬虫执行方式 ...

  5. python爬虫爬取煎蛋网妹子图片

    import urllib.request import os def url_open(url): req = urllib.request.Request(url) req.add_header( ...

  6. [Java]使用HttpClient实现一个简单爬虫,抓取煎蛋妹子图

    第一篇文章,就从一个简单爬虫开始吧. 这只虫子的功能很简单,抓取到”煎蛋网xxoo”网页(http://jandan.net/ooxx/page-1537),解析出其中的妹子图,保存至本地. 先放结果 ...

  7. Golang分布式爬虫:抓取煎蛋文章|Redis/Mysql|56,961 篇文章

    --- layout: post title: "Golang分布式爬虫:抓取煎蛋文章" date: 2017-04-15 author: hunterhug categories ...

  8. selenium爬取煎蛋网

    selenium爬取煎蛋网 直接上代码 from selenium import webdriver from selenium.webdriver.support.ui import WebDriv ...

  9. python爬虫学习(1)__抓取煎蛋图片

    #coding=utf-8 #python_demo 爬取煎蛋妹子图在本地文件夹 import requests import threading import time import os from ...

随机推荐

  1. HeidiSQL 导入Excel数据

    一 前言 原文出处:http://blog.csdn.net/qq_27727681/article/details/53944744 二 效果演示: 2000多条数据,顺利导入成功. 三  实现方法 ...

  2. DeepMind提出新型超参数最优化方法:性能超越手动调参和贝叶斯优化

    DeepMind提出新型超参数最优化方法:性能超越手动调参和贝叶斯优化 2017年11月29日 06:40:37 机器之心V 阅读数 2183   版权声明:本文为博主原创文章,遵循CC 4.0 BY ...

  3. Rikka with Graph hdu 6090

    题解:考虑贪心地一条一条边添加进去. 当 m \leq n-1m≤n−1 时,我们需要最小化距离为 nn 的点对数,所以肯定是连出一个大小为 m+1m+1 的联通块,剩下的点都是孤立点.在这个联通块中 ...

  4. hdu 6077多校签到

    #include <iostream> #include <cstdio> using namespace std; ][]; int f(int pos) { ; ;i< ...

  5. express相关操作

    1.   安装应用生成器npm install express-generator –g 2.   生成项目Express --view=ejs myapp 3.   进入项目安装依赖包 npm in ...

  6. 8.SpringMVC注解式开发-HelloWorld

    第一个注解式开发程序 SpringMVC 是 Spring 框架的一部分,所以它和Spring结合的是非常紧密的 使用 @Controller 注解,既可以将处理器交给Spring容器去管理,又可以说 ...

  7. Django—model系统:ORM之其他骚操作

    Django ORM执行原生SQL # extra # 在QuerySet的基础上继续执行子语句 # extra(self, select=None, where=None, params=None, ...

  8. 自动化测试环境搭建(appium+selenium+python)

    一.需要安装的软件(根据你所需要的版本安装即可,不一定必须按照小编的版本来) JDK:1.8.0_171 Python:3.7.1 node.js:10.13.0 android-sdk_r24.4. ...

  9. ACM中值得注意/利用的C++语法特性

    C++ 的易踩坑点 随时补充 STL不能边循环边erase() //自己写的求交集RE了 for (set <int> ::iterator it = s.begin(); it != s ...

  10. 说说lock到底锁谁(II)?

    摘要 今天在园子里面有园友反馈关于[C#基础]说说lock到底锁谁?文章中lock(this)的问题.后来针对文章中的例子,仔细想了一下,确实不准确,才有了这篇文章的补充,已经对文章中的demo进行修 ...