- 浏览: 17347 次
最新评论
{Python??图片下载}
2011年07月29日
v1.0 这次是用的XPATH解析的网页,代码长度是原来的一半
v1.1 加入多线程支持,修改了读取图片列表的bug,加入多线程后可以同时开启几十个线程同时下载,很奇怪为啥没有被封...
uthor__ = 'Dodola'
from lxml.html import parse
from time import sleep,ctime
import time
import urllib.request
import threading
import os
BASEURL = "http://www.topit.me"
ALBUMURL="http://www.topit.me/album/"
ALBUMPERURL="http://www.topit.me/album/%s?p=%s"
def Download(path, pageUrl):
try:
spath = parse(BASEURL + pageUrl)
imageUrls = spath.xpath('//a[@id="item-tip"]')
imageUrl = imageUrls[0].attrib["href"]
print("正在下载%s"%imageUrl)
imageNames=imageUrl.rsplit('/')
imageName=imageNames[len(imageNames)-1]
urllib.request.urlretrieve(imageUrl, path+imageName)
print("保存成功:%s%s"%(path ,imageName))
except Exception as err:
print("下载错误{}".format(err))
def DownloadAlbum(path,albumId):
pageUrl=ALBUMURL+albumId
tempdir="%s%s\\"%(path,time.strftime("%Y%m%d%H%M%S",time.localtime(time.time())))
print(tempdir)
os.mkdir(tempdir)
print(pageUrl)
spath=parse(pageUrl)
pagecounts=spath.xpath("id('pagination')/div/a")
print(pagecounts)
print("页面总数:%s"%(int(pagecounts[len(pagecounts)-2].text_content())))
if len(pagecounts)>1:
pagecount=int(pagecounts[len(pagecounts)-2].text_content())
else:
pagecount=2
for page in range(1,pagecount):
print("访问第%s页"%page)
DownloadPerAlbum(tempdir,albumId,page)
def DownloadPerAlbum(path,albumid,page):
pageUrl=ALBUMPERURL% (albumid,page)
pageel=parse(pageUrl)
imgUrls=pageel.xpath("//a[starts-with(@href,'/album/%s/item/')]/@href"%albumid)
imgUrls=set(imgUrls)#去重
print("第%s页图片数%s"%(page,len(imgUrls)))
task_threads=[] #存储线程
count=1
for i in imgUrls:
t= threading.Thread(target=Download,args=(path,i))
#Download(path,i.attrib.get("href"))
count=count+1
task_threads.append(t)
for task in task_threads:
task.start()
#task.join()#将线程改为1,过多线程会被封
for task in task_threads:
task.join() #等待所有线程结束
print("线程结束")
DownloadAlbum("E:\\topit.me\\","225489")
发表评论
-
堆和栈的区别
2012-01-20 01:58 569堆和栈的区别 2010年10 ... -
堆栈的认知!
2012-01-20 01:58 615堆栈的认知! 2010年11月2 ... -
用IIS发布网站
2012-01-20 01:58 847用IIS发布网站 2010年07月15日 1,安装iis ... -
ubuntu linux环境使用技巧
2012-01-20 01:58 1321ubuntu linux环境使用技巧 ... -
MFC GDI绘图基础
2012-01-20 01:58 2458MFC GDI绘图基础 2011年04 ... -
开始学习Python
2012-01-19 09:45 1401开始学习Python 2011年04月10日 Pytho ... -
学习python
2012-01-19 09:45 935学习python 2011年09月29日 ... -
Python/创建
2012-01-19 09:45 577Python/创建 2011年10月31日 欢迎来到 P ... -
ArcGIS Server 9.3 安装步骤及相关注意事项
2012-01-19 09:44 1162ArcGIS Server 9.3 安装步骤及相关注意事项 ... -
Android SDK Android NDK
2012-01-17 02:20 911Android SDK Android NDK 2011年0 ... -
android最新的SDK安装方法+ 离线安装方法
2012-01-17 02:20 673android最新的SDK安装方法+ 离线安装方法 2010 ... -
Android SDK2.1开发环境的搭建
2012-01-17 02:20 847Android SDK2.1开发环境的搭建 2010年11月 ... -
弥补SDK工具不足 微软推出WP Power Tools
2012-01-17 02:19 906弥补SDK工具不足 微软推出WP Power Tools 2 ... -
libevent源码深度剖析四
2012-01-15 21:56 985libevent源码深度剖析四 ... -
valgrind结果查看
2012-01-15 21:56 798valgrind结果查看 2011年12月30日 程序示 ... -
给大学生学习ARM和FPGA的建议(转)
2012-01-15 21:56 897给大学生学习ARM和FPGA的 ... -
教大家S40/java所有玩机技巧,喜欢请转载 加QQ657752021学习更多技术
2012-01-15 21:55 639教大家S40/java所有玩机 ...
相关推荐
python 批量下载百度图片 , 支持关键词,目录创建,图片信息汇总,代码简单易懂,有兴趣可以下载下
Python 抓取 图片Python 抓取 图片Python 抓取 图片Python 抓取 图片Python 抓取 图片Python 抓取 图片
python 图片下载代码 新手可以看看 循环下载到本地 通过简单的爬虫的技术实现
python下载网络图片到指定的目录,只要给出url就能下,方法已封装,直接可用
python图片下载,传入图片url,将图片保存在本地
使用python批量下载图片,从已知的图片网站上批量下载免费图片到本地保存。使用python语言实现。
通过Python写的下载搜狗图片的源码
百度图片下载器python版 百度图片下载
下载图片,图片下载器 适合人群:python初学者,想要上手试一试 能学到什么:1、python基本知识 2、pyqt5相关使用 3、beautifulsoup相关使用 阅读建议:此程序功能相对简单,适合初学者用于练手,并不支持商业化...
利用python写的批量图片下载器,程序可自动上网搜索用户 输入的关键字图片并下载
python的多线程爬取下载图片
python爬虫,简陋的pixabay图片下载器python爬虫,简陋的pixabay图片下载器python爬虫,简陋的pixabay图片下载器python爬虫,简陋的pixabay图片下载器python爬虫,简陋的pixabay图片下载器python爬虫,简陋的pixabay...
1、输入指定链接批量下载微信公众号文章图片; 2、输入多个文章链接,批量下载微信公众号图片; 3、输入多个文章链接,批量导出微信公众号文章文本; 4、输入指定链接,下载音频; 5、wkhtmltopdf.exe免安装将html...
python 下载bing搜索首页图片,使用权需要在c: 盘创建一个C:\BingWallPaper目录,可以修改代码变更为其他目录,每日双击一次,自动把bing美图下载,省得查看网页源代码,寻找图片下载地址
使用Python下载图片,下载60页,可以更改下载的页数,下载后自动自动生成文件夹分类存放,可以使用多进程进行下载,改善下载效率。
基于Python的图片批量处理器(包含项目源码+可执行程序+程序使用说明),快来下载吧! 基于Python的图片批量处理器(包含项目源码+可执行程序+程序使用说明),快来下载吧! 基于Python的图片批量处理器(包含项目...
可以利用此程序批量下载百度图片~可以创建存储目录,自定搜索关键词,选择下载的图片张数,比较人性化吧~ 需要安装python
python批量下载百度图片的打包好了的可执行程序。程序所有需要的依赖包都已经打包后,可以直接运行使用,使用步骤在程序中会有每一步的提示。
利用Python爬虫批量下载百度图库图片