py2版本: #-*- coding:utf-8 -*-
#from __future__ import unicode_liter
import urllib,urllib2,time
import re,sys,os
headers={
'Referer':'http://jandan.net/',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',

}
def getimg(n=''):
req=urllib2.Request('http://jandan.net/ooxx'+n,headers=headers)

html=urllib2.urlopen(req).read()
if n=='':
#print html
reg= '''<div class="text"><span class="righttext"><a href="//jandan.net/ooxx/page-(.*?)#comment-.*?">[\d]*</a></span><p><a href="//.*?"'''
else:
reg= '''<div class="text"><span class="righttext"><a href="//jandan.net/ooxx/page-.*?#comment-.*?">[\d]*</a></span><p><a href="//(.*?)"'''
reg=re.compile(reg)
img=re.findall(reg,html)
return img
a=1
#创建下载图片的文件夹
#dirpath=os.path.splitext(path) 分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作
dirpath=os.getcwd()+'/img'
if not os.path.exists(dirpath):
os.mkdir(dirpath)
#下载图片
nu=raw_input('你想获取多少页(每页大概11张图片):')
nowpage=getimg()[0]
print nowpage

for n in range(int(nowpage)-int(nu)+1,int(nowpage)+1):
print '获取第%s页'%n

for i in getimg('/page-%s'%n):
print '正在下载第%s张图片'%a
k=r'http://'+i
print k
urllib.urlretrieve(k, 'img/%s' %i.split('/')[-1])
#time.sleep(2) #出现响应超时的情况时加上这句
a+=1

'''
try: #urllib.urlretrieve(i,'img/%s'%str(i)[-8:-1])
urllib.urlretrieve(i,'img/%s.png'%a)
a+=1
except:
print "Unexpected error:", sys.exc_info()[0]
'''
print '总共下载%s张图片'%(int(a)-1)
py3版本: ​
#from __future__ import unicode_liter
import urllib.request
import re,sys,os
headers={
# 'Cookie':'__cfduid=df3295a9ee824f447e48bcda4f871d50f1505877948; _ga=GA1.2.1288199068.1505877788; _gid=GA1.2.1501836844.1505877789; _gat=1',
'Referer':'http://jandan.net/',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',

}
def getimg(n=''):
req=urllib.request.Request('http://jandan.net/ooxx'+n,headers=headers)

html=urllib.request.urlopen(req).read().decode('utf-8')
if n=='':
#print html
reg= '''<div class="text"><span class="righttext"><a href="//jandan.net/ooxx/page-(.*?)#comment-.*?">[\d]*</a></span><p><a href="//.*?"'''
else:
reg= '''<div class="text"><span class="righttext"><a href="//jandan.net/ooxx/page-.*?#comment-.*?">[\d]*</a></span><p><a href="//(.*?)"'''
reg=re.compile(reg)
img=re.findall(reg,html)
return img

a=1
#创建下载图片的文件夹
#dirpath=os.path.splitext(path) 分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作
dirpath=os.getcwd()+'/img'
if not os.path.exists(dirpath):
os.mkdir(dirpath)
#下载图片
nu=input('你想获取多少页(每页大概21张图片):')
nowpage=getimg()[0]
print(nowpage)

for n in range(int(nowpage)-int(nu),int(nowpage)):
print('获取第%s页'%n)

for i in getimg('/page-%s'%n):
print('正在下载第%s张图片'%a)
k=r'http://'+i
print(k)
urllib.request.urlretrieve(k, 'img/%s' %i.split('/')[-1])
a+=1
'''
try: #urllib.urlretrieve(i,'img/%s'%str(i)[-8:-1])
urllib.urlretrieve(i,'img/%s.png'%a)
a+=1
except:
print "Unexpected error:", sys.exc_info()[0]
'''
print('总共下载%s张图片'%(int(a)-1))

python爬取煎蛋图片的更多相关文章

  1. Python 爬取煎蛋网妹子图片

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2017-08-24 10:17:28 # @Author : EnderZhou (z ...

  2. python爬取煎蛋网图片

    ``` py2版本: #-*- coding:utf-8 -*-#from __future__ import unicode_literimport urllib,urllib2,timeimpor ...

  3. Python 爬取 煎蛋

    这个我是拿来参考的 import requests def url_open(url): response = requests.get(url) html = response.content re ...

  4. python3爬虫爬取煎蛋网妹纸图片(上篇)

    其实之前实现过这个功能,是使用selenium模拟浏览器页面点击来完成的,但是效率实际上相对来说较低.本次以解密参数来完成爬取的过程. 首先打开煎蛋网http://jandan.net/ooxx,查看 ...

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

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

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

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

  7. selenium爬取煎蛋网

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

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

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

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

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

随机推荐

  1. 最常见的三个排序(冒泡、直接插入、快速)的JS实现

    //冒泡排序function bubble(arr){ for(var i=0;i<arr.length;i++){ for(var j=0;j<arr.length-i;j++){ if ...

  2. Topshelf便捷创建Windows服务

    结合Quartz.net学习,前提已经创建了一个定时任务,可见 <定时调度框架:Quartz.net> (基于配置文件形式) 首先引用Topshelf.dll 自定义服务TestServi ...

  3. 201521123069 《Java程序设计》 第7周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: XMind List列表:元素以线性方式存放,允许有重复的对象. Set集:集合中的对象不按特定的方式排序,并且 ...

  4. 201521123011 《Java程序设计》 第三周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...

  5. 201521123042 《Java程序设计》 第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 上周总结了异常,这周主要总结多线程. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题 ...

  6. 201521123024 《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...

  7. 201521123108《Java程序设计》第12周学习总结

    1. 本周学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. Q ...

  8. 读Zepto源码之Selector模块

    Selector 模块是对 Zepto 选择器的扩展,使得 Zepto 选择器也可以支持部分 CSS3 选择器和 eq 等 Zepto 定义的选择器. 在阅读本篇文章之前,最好先阅读<读Zept ...

  9. Java:类类型变量

    在java中有一种被称为类类型的变量,它不同于基本类型变量存储值的方式.不管是基本变量还是类类型变量,都实现为一个内存位置.但是,由于基本变量所需的内存数量是相同的,所以系统可以给它设置一个固定的空间 ...

  10. 浅谈SQL优化入门:2、等值连接和EXPLAIN(MySQL)

    1.等值连接:显性连接和隐性连接 在<MySQL必知必会>中对于等值连接有提到两种方式,第一种是直接在WHERE子句中规定如何关联即可,那么第二种则是使用INNER JOIN关键字.如下例 ...