python爬取煎蛋网图片
``` 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爬取煎蛋网图片的更多相关文章
- Python 爬虫 爬取 煎蛋网 图片
今天, 试着爬取了煎蛋网的图片. 用到的包: urllib.request os 分别使用几个函数,来控制下载的图片的页数,获取图片的网页,获取网页页数以及保存图片到本地.过程简单清晰明了 直接上源代 ...
- Python 爬取煎蛋网妹子图片
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2017-08-24 10:17:28 # @Author : EnderZhou (z ...
- scrapy从安装到爬取煎蛋网图片
下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/pip install wheelpip install lxmlpip install pyopens ...
- python3爬虫爬取煎蛋网妹纸图片(上篇)
其实之前实现过这个功能,是使用selenium模拟浏览器页面点击来完成的,但是效率实际上相对来说较低.本次以解密参数来完成爬取的过程. 首先打开煎蛋网http://jandan.net/ooxx,查看 ...
- Python Scrapy 爬取煎蛋网妹子图实例(一)
前面介绍了爬虫框架的一个实例,那个比较简单,这里在介绍一个实例 爬取 煎蛋网 妹子图,遗憾的是 上周煎蛋网还有妹子图了,但是这周妹子图变成了 随手拍, 不过没关系,我们爬图的目的是为了加强实战应用,管 ...
- selenium爬取煎蛋网
selenium爬取煎蛋网 直接上代码 from selenium import webdriver from selenium.webdriver.support.ui import WebDriv ...
- python爬虫–爬取煎蛋网妹子图片
前几天刚学了python网络编程,书里没什么实践项目,只好到网上找点东西做. 一直对爬虫很好奇,所以不妨从爬虫先入手吧. Python版本:3.6 这是我看的教程:Python - Jack -Cui ...
- 爬虫实例——爬取煎蛋网OOXX频道(反反爬虫——伪装成浏览器)
煎蛋网在反爬虫方面做了不少工作,无法通过正常的方式爬取,比如用下面这段代码爬取无法得到我们想要的源代码. import requests url = 'http://jandan.net/ooxx' ...
- python3爬虫爬取煎蛋网妹纸图片(下篇)2018.6.25有效
分析完了真实图片链接地址,下面要做的就是写代码去实现了.想直接看源代码的可以点击这里 大致思路是:获取一个页面的的html---->使用正则表达式提取出图片hash值并进行base64解码--- ...
随机推荐
- 自上而下,逐步揭开PHP解析大整数的面纱
遇到的问题 最近遇到一个PHP大整数的问题,问题代码是这样的 $shopId = 17978812896666957068; var_dump($shopId); 上面的代码输出,会把$shopId转 ...
- 团队作业8——第二次项目冲刺(Beta阶段)
Deadline: 2017-5-28 22:00PM,以博客发表日期为准 评分基准: 按时交 - 有分,检查的项目包括后文的三个个方面 冲刺计划安排(单独1篇博客) 七天的敏捷冲刺(每天发布1篇,共 ...
- Beta阶段项目复审
复审人:王李焕 六指神功:http://www.cnblogs.com/teamworkers/ wt.dll:http://www.cnblogs.com/TeamOf/ 六个核桃:http://w ...
- 201521123082 《Java程序设计》第8周学习总结
201521123082 <Java程序设计>第8周学习总结 标签(空格分隔):Java 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 ...
- 201521123100 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- java程序设计 彩票购买抽奖程序 团队博客
一.项目介绍 题目要求 功能要求: 模拟福利彩票36选7,实现彩票的抽奖与中奖通知功能. 1.允许注册用户,用户信息包括用户id,用户名,密码,账户金额,电话号码等属性. 2.允许注册用户购买彩票:手 ...
- 201521123070 《JAVA程序设计》第9周学习总结
1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 Q1. 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 ...
- bind9的一些配置
/etc/bind/named.conf.options:options { listen-on port 53 { any; }; // 监听在主机的53端口上.any代表监听所有的主机 direc ...
- 谈一谈最近学了一段时间的node.js
官方说明 1.NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”. 2.node是一个基于Chrome V8引擎进行代码解释的.轻量.可伸缩的具有事件驱动和非阻塞I/O机制的js运 ...
- 技巧收集-M1709
2017.09 在macOS中直接复制文件路径,在Finder中选中文件,按下快捷键:Command + Option + C *** 以KB,MB,GB方式显示文件大小 ls -lh 删除超大文本文 ...