多线程下载图片

  1. # -*- coding:utf8 -*-
  2. from bs4 import BeautifulSoup
  3. import os, sys, urllib2, urllib
  4. import thread, threading
  5. class downloader(threading.Thread):
  6. """docstring for downloader"""
  7. def __init__(self, url, name):
  8. threading.Thread.__init__(self)
  9. self.url = url
  10. self.name = name
  11. def run(self):
  12. print ‘downling from %s‘ % self.url
  13. urllib.urlretrieve(self.url, self.name)
  14. threads=[]
  15. def page_loop(page=1):
  16. url = ‘http://www.beautylegmm.com/Tiara/beautyleg-936.html?page=%s‘ % page
  17. content = urllib2.urlopen(url)
  18. soup = BeautifulSoup(content)
  19. my_girl = soup.find_all(‘img‘)
  20. global x
  21. # 加入结束检测,写的不好....
  22. if len(my_girl) <5:
  23. print ‘已经全部抓取完毕‘
  24. sys.exit(0)
  25. print ‘开始抓取‘
  26. for girl in my_girl:
  27. link = girl.get(‘src‘)
  28. if ‘jpg‘ in link:
  29. flink = ‘http://www.beautylegmm.com‘ + link
  30. print flink
  31. path = ‘dbmeizi‘+‘/‘ + str(x) + flink[-4:]
  32. x = x + 1
  33. t = downloader(flink, path)
  34. threads.append(t)
  35. t.start()
  36. # content2 = urllib2.urlopen(flink).read()
  37. # with open(‘dbmeizi‘+‘/‘ + str(x) + flink[-4:],‘wb‘) as code:
  38. # code.write(content2)
  39. page = int(page) + 1
  40. print ‘开始抓取下一页‘
  41. print ‘the %s page‘ % page
  42. page_loop(page)
  43. x = 1
  44. page_loop()

来自为知笔记(Wiz)

时间: 2024-10-12 09:21:05

多线程下载图片的相关文章

多线程下载图片,滑动tableView崩溃--资源抢夺问题

最近练习使用NSoperation模拟SDWebImage下载图片,发生了崩溃的问题,还专门写博客记录这件事情: http://www.cnblogs.com/tufei7/p/7074030.html, 当时以为是因为weakSelf和StrongSelf造成的崩溃, 然而我尽管用了StrongSelf和WeakSelf仍然崩溃,当时我也很崩溃. 思前想后还是跟demo源码对比下吧,对比发现: demo代码 红框里面的代码是写在 mainQueue的block里面的, 我的是写在mainQue

MAP函数应用于多线程下载图片

# -*- coding:utf8 -*- from bs4 import BeautifulSoup import os, sys, urllib2, urllib from multiprocessing.dummy import Pool as ThreadPool urls = [] def download(url): urllib.urlretrieve(url, 'd:/'+url[-7:]) def page_loop(page=1): url = 'http://www.bea

curl多线程下载类

<?php /** * curl多线程下载类 */class MultiHttpRequest{ public $urls = array (); private $res = array (); private $curlopt_header = 0; private $method = "GET"; private $curlopt = array (); public function __construct($urls = false, $curlopt = array

iOS多线程自定义operation加载图片 不重复下载图片

摘要:1:ios通过抽象类NSOperation封装了gcd,让ios的多线程变得更为简单易用:   2:耗时的操作交给子线程来完成,主线程负责ui的处理,提示用户的体验   2:自定义operation继承自NSOperation,在子线程中下载图片: 3:保证图片只下载一次,还有保证下载任务不重复 ------------------------------------------------------------------------------------ 实现原理:1:图片缓存:用

ios多线程GCD下载图片

1 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 2 { 3 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 4 dispatch_async(queue, ^{ 5 NSLog(@"--download--%@", [NSThread currentThread]); 6 /

【幻化万千戏红尘】qianfengDay27-HttpURLConnection,OkHttpClient,,多线程下载且断点续传基础学习:

课程回顾: Servlet:java语言开发的运行在服务器上的开发步骤:1.创建Servlet类2.重写doGet或doPost方法3.运行在服务器 生命周期:1.初始化2.服务3.销毁 URL:统一资源定位符,网址openConnection 今日内容:Http协议:超文本传输协议常用方式:1.HttpURLConnection2.okHttp HttpURLConnection的使用步骤:1.创建URL对象---URL url=new URL("网址");2.获取连接对象--Htt

Java 仿迅雷多线程下载

package net.webjoy.jackluo.android_json; /** * 1.http Range "bytes="+ start+end * 2.RandomAccessFile设置写入的位置 * 3开启多线程下载 * * Created by jackluo on 9/30/15. */ import android.os.Environment; import android.os.Handler; import android.os.Message; imp

iOS多线程与网络开发之大文件下载 (边下边写/暂停恢复下载/压缩解压zip/多线程下载)

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 游戏官方下载:http://dwz.cn/RwTjl 游戏视频预览:http://dwz.cn/RzHHd 游戏开发博客:http://dwz.cn/RzJzI 游戏源码传送:http://dwz.cn/Nret1 A.需求 边下边写入硬盘 显示下载进度 暂停/恢复 下载 解压文件 多线程下载 B.基本知识 1

0422 多线程下载(分类/类扩展)/封装mySdWebImage

1. 创建分类 Source - OC Files - 选择UIImageView创建分类(category) 2. 在分类中创建一个对象方法: 分析分类需要做什么,需要什么参数? 1) 分类需要获得url,从而下载图片 2) 分类需要传进来一个图片,作为placeholder 所以,定义一个方法: -(void)my_SdWebImageWithUrl:(NSURL*)url placeholder:(UIImage*)placeholder; 3. 把创建线程的方法从原先的ViewDidLo