python下载文件(图片)源码,包含爬网内容(爬url),可保存cookie
#coding=utf-8
'''
Created on 2013-7-17
@author: zinan.zhang
'''
import re
import time
import httplib2
import urllib
from bs4 import BeautifulSoup
#路径
savePath = 'F://TDDOWNLOAD//aNO.4//'
#获取url
def url_xunhuan(url,list):
return url + list
#下载图片的时候
time.sleep(0.5)#先sleep,再读取数据
"""根据url下载文件,文件名自动从url获取"""
def gDownload(url,savePath):
#参数检查,现忽略
fileName = gGetFileName(url)
#fileName =gRandFilename('jpg')
gDownloadWithFilename(url,savePath,fileName)
"""根据url获取文件名"""
def gGetFileName(url):
if url==None: return None
if url=="" : return ""
arr=url.split("/")
return arr[len(arr)-1]
"""根据url下载文件,文件名参数指定"""
def gDownloadWithFilename(url,savePath,file):
#参数检查,现忽略
try:
urlopen=urllib.URLopener()
fp = urlopen.open(url)
data = fp.read()
fp.close()
file=open(savePath + file,'w+b')
file.write(data)
print "下载成功:"+ url
file.close()
except IOError:
print "下载失败:"+ url
#初始化页面,提取必要信息
def getPage(url):
userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)'
headers = {
'User-Agent': userAgent,
'Accept-Language': 'zh-CN,zh;q=0.8',
'Accept': 'text/css,*/*;q=0.1',
}
http = httplib2.Http(".cache")
_, content = http.request(url, 'GET',headers=headers)
return content
#循环下载列表固定的 ---就是wallpaper,enterdesk等网站
def xuanhuan_down_list():
list=[]
url = 'http://tupian.enterdesk.com/2013/mxy/0311/4/'
temp=10
for i in range(temp):
list.append(str(i)+'.jpg')
for i in range(temp):
url_list = url_xunhuan(url,list[i])
gDownload(url_list,savePath)
time.sleep(0.2)
#爬网获取url
def spider_url(url):
page = getPage(url)
dom = BeautifulSoup(page)
srcs = [x['src'] for x in dom.findAll('img')]
#成功获取url
return srcs[0]
#循环下载列表随机的 ---就是ZOL桌面壁纸下载
def xuanhuan_down_suiji():
try:
temp=25
i=88
j=i
while (i <= j+temp):
#http://desk.zol.com.cn/showpic/1920x1200_30688_33.html
url = 'http://desk.zol.com.cn/showpic/1920x1200_12'+str(i)+'_37.html'
src_url = spider_url(url)
gDownload(src_url,savePath)
time.sleep(0.1)
i+=1
except IOError:
print "url获取失败!"
if __name__ == "__main__":
#gDownload(url,savePath)
'''
#批量下载序号固定的图片
xuanhuan_down_list()
'''
'''
#批量下载隐藏jpg路径的文件
xuanhuan_down_suiji()
'''
#批量下载文件
print '下载完成!'
python下载文件(图片)源码,包含爬网内容(爬url),可保存cookie的更多相关文章
- Asp.Net Web Api 2 实现多文件打包并下载文件示例源码_转
一篇关于Asp.Net Web Api下载文件的文章,之前我也写过类似的文章,请见:<ASP.NET(C#) Web Api通过文件流下载文件到本地实例>本文以这篇文章的基础,提供了Byt ...
- android源码-安卓源码-Android源码下载-安卓游戏源码
android源码 高仿精仿金山手机卫士应用源码V1.2 高仿精仿金山手机卫士应用源码,该应用的级别实现了金山卫士的级别功能了,可以说跟现实中我们使用的金山卫士应用的功能几乎差不 人气:9286 ...
- Java文件操作源码大全
Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...
- 实现目标文件与源码分开的makefile测试实验
uboot提供了两种编译策略,即可以将生成的目标文件与源码混在一起,也可以将生成的目标文件与源码分开.通过对uboot Makefile的分析,笔者编写了一个简单的实现这种功能的Makfile. 顶层 ...
- Git下载Spring项目源码并编译为Eclipse
1)当前系统中安装了gradle,如果为安装,可以从:http://www.gradle.org/downloads,,下载完后进行解压到任意盘符,然后增加环境变量GRADLE_HOME,并在环境变量 ...
- eclipse查看class文件的源码
eclipse查看class文件的源码: 1.网上下载jadClipse的jar包和执行文件jad.exe和 net.sf.jadclipse_3.3.0.jar. 2.把上面下载的jar包放在ecp ...
- java编程思想第四版中net.mindview.util包下载,及源码简单导入使用
在java编程思想第四版中需要使用net.mindview.util包,大家可以直接到http://www.mindviewinc.com/TIJ4/CodeInstructions.html 去下载 ...
- python重试库retryiny源码剖析
上篇博文介绍了常见需要进行请求重试的场景,本篇博文试着剖析有名的python第三方库retrying源码. 在剖析其源码之前,有必要讲一下retrying的用法,方便理解. 安装: pip insta ...
- Eclipse安装反编译插件,查看.class文件的源码
2017-08-24 这样我们就可以通过Eclipse查看.class文件的源码了. 1.参考别人的博客,亲测有效 https://www.cnblogs.com/JealousGirl/p/setu ...
- Django的settings文件部分源码分析
Django的settings文件部分源码分析 在编写Django项目的过程中, 其中一个非常强大的功能就是我们可以在settings文件配置许多选项来完成我们预期的功能, 并且这些配置还必须大写, ...
随机推荐
- Java集合框架的知识总结
说明:面试准备,写的挺不错的. 转载地址: http://www.cnblogs.com/zhxxcq/archive/2012/03/11/2389611.html 1.综述 所有集合类都位于jav ...
- DMA(STM32)
1.DMA:data memory access //实际的内存存储 注:DMA干活的时候是不须要CPU干涉的 2. ①内存(定义的变量)---外设(寄存器). ②内存---内存 ③外设---外 ...
- BZOJ2440(全然平方数)二分+莫比乌斯容斥
题意:全然平方数是指含有平方数因子的数.求第ki个非全然平方数. 解法:比較明显的二分,getsum(int middle)求1-middle有多少个非全然平方数,然后二分.求1-middle的非全然 ...
- openstack之cinder
一.cinder概述: 1.F版之前,并没有cinder,对应的组件为nova-volume:以Rest API的形式提供服务 2.cinder目标: 减少nova的复杂性,降低nova的负载,支持多 ...
- 页面布局之BFC 微微有点坑
一.什么是BFC: 在解释 BFC 是什么之前,需要先介绍 Box.Formatting Context的概念. Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单位, 直观点来说 ...
- jQuery 1.9+ ajaxStart事件无效,无法被触发的原因。
AJAX 事件需要绑定到document 在jQuery 1.9中, 全局的AJAX事件(ajaxStart, ajaxStop, ajaxSend, ajaxComplete, ajaxError, ...
- JavaSE学习总结第19天_IO流1
19.01 集合的特点和数据结构总结 HashSet.HashMap.Hashtable判断元素唯一性的方式: 通过对象的hashCode和equals方法来完成元素唯一性 如果对象的hashC ...
- springAOP配置原理
什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP引入 ...
- PHPExcel 生成excel统计表格
db.php为数据库操作类, $config为数据库配置,PHPExcel版本为PHPExcel_1.8.0, php代码: $dir = dirname(__FILE__); require $d ...
- [LeetCode]题解(python):021-Merge Two Sorted Lists
题目来源: https://leetcode.com/problems/merge-two-sorted-lists/ 题意分析: 题目给出两个排好序的链表,将这两个链表整合成一个新的有序的链表. 题 ...