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 爬取煎蛋网妹子图片
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2017-08-24 10:17:28 # @Author : EnderZhou (z ...
- python爬取煎蛋网图片
``` py2版本: #-*- coding:utf-8 -*-#from __future__ import unicode_literimport urllib,urllib2,timeimpor ...
- Python 爬取 煎蛋
这个我是拿来参考的 import requests def url_open(url): response = requests.get(url) html = response.content re ...
- python3爬虫爬取煎蛋网妹纸图片(上篇)
其实之前实现过这个功能,是使用selenium模拟浏览器页面点击来完成的,但是效率实际上相对来说较低.本次以解密参数来完成爬取的过程. 首先打开煎蛋网http://jandan.net/ooxx,查看 ...
- python爬虫学习(1)__抓取煎蛋图片
#coding=utf-8 #python_demo 爬取煎蛋妹子图在本地文件夹 import requests import threading import time import os from ...
- Python Scrapy 爬取煎蛋网妹子图实例(一)
前面介绍了爬虫框架的一个实例,那个比较简单,这里在介绍一个实例 爬取 煎蛋网 妹子图,遗憾的是 上周煎蛋网还有妹子图了,但是这周妹子图变成了 随手拍, 不过没关系,我们爬图的目的是为了加强实战应用,管 ...
- selenium爬取煎蛋网
selenium爬取煎蛋网 直接上代码 from selenium import webdriver from selenium.webdriver.support.ui import WebDriv ...
- python爬虫–爬取煎蛋网妹子图片
前几天刚学了python网络编程,书里没什么实践项目,只好到网上找点东西做. 一直对爬虫很好奇,所以不妨从爬虫先入手吧. Python版本:3.6 这是我看的教程:Python - Jack -Cui ...
- Python 爬虫 爬取 煎蛋网 图片
今天, 试着爬取了煎蛋网的图片. 用到的包: urllib.request os 分别使用几个函数,来控制下载的图片的页数,获取图片的网页,获取网页页数以及保存图片到本地.过程简单清晰明了 直接上源代 ...
随机推荐
- pycharm远程linux开发和调试代码
pycharm是一个非常强大的python开发工具,现在很多代码最终在线上跑的环境都是linux,而开发环境可能还是windows下开发,这就需要经常在linux上进行调试,或者在linux对代码进行 ...
- 【DDD】领域驱动设计实践 —— 限界上下文识别
本文从战略层面街上DDD中关于限界上下文的相关知识,并以ECO系统为例子,介绍如何识别上下文.限界上下文(Bounded Context)定义了每个模型的应用范围,在每个Bounded Context ...
- 自制STP配置实验
本图使用Gns模拟器 实验需求: 1.要求利用vtp实现vlan同步设置 2.要求vtp server实现备份冗余 3.创建vlan 1~10要求MLSW1 是奇数vlan主根 MLSW2 是偶数vl ...
- 【★】KMP算法完整教程
KMP算法完整教程 全称: Knuth_Morris_Pratt Algorithm(KMP算法) 类型: ...
- 四则运算GUI版
小学四则运算界面版 李永豪 201421123117 郑靖涛 201421123114 coding 地址:https://git.coding.net/ras/work2.git 一.题目描述 我们 ...
- 团队作业8——第二次项目冲刺(Beta阶段)--5.25 5th day
团队作业8--第二次项目冲刺(Beta阶段)--5.25 fifth day Day five: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完 ...
- 201521123039 《java程序设计》第四周学习总结
1. 本周学习总结 总结: 1.提到类的继承就会想到继承层次的问题,一般我们都将子类和父类共同的特征放到父类中,将具有特殊用途的方法放在子类中,这样可以有效避免代码冗余. 2.覆盖与重载是不同的概念, ...
- 201521123049 《JAVA程序设计》 第2周学习总结
*1. 本周学习总结 1.复习了一遍基本类型:整数类型(byte,short,int,long,char).浮点类型(float,double).boolean类型(true, false). 2.了 ...
- Python[小甲鱼008了不起的分支和循环2]
案例:对所给的分数进行评级,以下有三种方案: score = int(input('请输入一份分数')) #第一种方案 if 100 >= score >= 90: print('A') ...
- 如何使用sourcetree 或 IDEA 自带的git合并代码?
如何将本地的wyy分支合并并推送到远端的 develop分支? 规则:最好是本地的分支wyy推送到对应的远端origin/wyy ,不建议直接推送到远端不同的分支!!所以 基本思路如下: 1.本地的w ...