1. #!python3
  2. #multidownloadXkcd.py - Download XKCD comics using multiple threads.
  3.  
  4. import requests
  5. import bs4
  6. import os
  7. import threading
  8.  
  9. # os.mkdir('xkcd', exist_ok=True) # store comics in ./xkcd
  10. if os.path.exists('xkcd'):
  11. print("xkcd is existed!")
  12. else:
  13. os.mkdir('xkcd')
  14.  
  15. def downloadXkcd(startComic, endComic):
  16. for urlNumber in range(startComic, endComic):
  17. #Download the page
  18. print("Downloading page http://xkcd.com/%s..." % urlNumber)
  19. res = requests.get('http://xkcd.com/%s' % urlNumber)
  20. res.raise_for_status()
  21.  
  22. print(res.text)
  23. soup = bs4.BeautifulSoup(res.text)
  24.  
  25. #Find the URL of the comic image.
  26. comicElem = soup.select('#comic img')
  27. if comicElem == []:
  28. print('Could not find comic images.')
  29. else:
  30. comicUrl = comicElem[0].get('src')
  31. # #Download the image.
  32. # print('Downloading image %s...' % (comicUrl))
  33. # res = requests.get(comicUrl)
  34. # res.raise_for_status()
  35. #
  36. # # Save the image to ./xkcd
  37. # imageFile = open(os.path.join('xkcd', os.path.basename(comicUrl)), 'wb')
  38. # for chunk in res.iter_content(100000):
  39. # imageFile.write(chunk)
  40. # imageFile.close()
  41.  
  42. downloadThread = threading.Thread(target=downloadXkcd(555, 557))
  43. downloadThread.start()
  44.  
  45. # # TODO: Create and start the thread objects
  46. # downloadThreads = [] # a list of all the Thread objects
  47. # for i in range(500, 600, 10):
  48. # downloadThread = threading.Thread(target=downloadXkcd, args=(i, i+9))
  49. # downloadThreads.append(downloadThread)
  50. # downloadThread.start()
  51. #
  52. # # TODO: Wait for all threads to end
  53. # for downloadThread in downloadThreads:
  54. # downloadThread.join()
  55. # print("Done.")

  

python多线程下载网页图片并保存至特定目录的更多相关文章

  1. php中ob_get_contents、curl_multi_init、curl_init多线程下载远程图片并保存记录

    php中三种方式测试图片下载效率 原文共24张不同图,每张大小在500K以上 使用时注意调整传入数组格式以及需要下载时保存地址的路径格式等 这三种方式无需额外安装扩展,方便快捷易操作[虽然效率看结果没 ...

  2. python:将网页图片保存到本地

    1.requests库介绍 在python中,有一个非常好用的网络请求库requests,使用它可以发起网络请求,并获取网页返回的内容.同时,也可以进行网页图片下载 requests是使用Apache ...

  3. 小白学Python(7)——利用Requests下载网页图片、视频

    安装 Requests 如果安装了Requests就已经可用了,否则要安装 Requests,只要在你的CMD中运行这个简单命令即可: pip install requests requests使用 ...

  4. Python爬虫下载美女图片(不同网站不同方法)

    声明:以下代码,Python版本3.6完美运行 一.思路介绍 不同的图片网站设有不同的反爬虫机制,根据具体网站采取对应的方法 1. 浏览器浏览分析地址变化规律 2. Python测试类获取网页内容,从 ...

  5. Python爬虫之网页图片抓取

    一.引入 这段时间一直在学习Python的东西,以前就听说Python爬虫多厉害,正好现在学到这里,跟着小甲鱼的Python视频写了一个爬虫程序,能实现简单的网页图片下载. 二.代码 __author ...

  6. 用 Python 批量下载百度图片

    ​ 为了做一个图像分类的小项目,需要制作自己的数据集.要想制作数据集,就得从网上下载大量的图片,再统一处理. 这时,一张张的保存下载,就显得很繁琐.那么,有没有一种方法可以把搜索到的图片直接下载到本地 ...

  7. python爬取网页图片(二)

    从一个网页爬取图片已经解决,现在想要把这个用户发的图片全部爬取. 首先:先找到这个用户的发帖页面: http://www.acfun.cn/u/1094623.aspx#page=1 然后从这个页面中 ...

  8. python脚本工具-1 制作爬虫下载网页图片

    参考:http://www.cnblogs.com/fnng/p/3576154.html 本文参考虫师的博客“python实现简单爬虫功能”,整理分析后抓取其他站点的图片并下载保存在本地. 抓取图片 ...

  9. Python多线程Threading爬取图片,保存本地,openpyxl批量插入图片到Excel表中

    之前用过openpyxl库保存数据到Excel文件写入不了,换用xlsxwriter 批量插入图片到Excel表中 1 import os 2 import requests 3 import re ...

随机推荐

  1. boot中 Quartz注入spring管理类失败

    在项目中用到了Quartz,想在里面实现业务操作发现sping类注入总是失败.后来网上查询了一下解决办法.下面把我成功解决问题的这个版本发出来,大家一起学习一下. 在quartz 会发现 job中无法 ...

  2. vue 学习笔记1

    1.子组件在父组件的原生的事件例如一个child子组件的点击事件<child @click="handleClick">点击</child>这种情况在父组件 ...

  3. Centos7安装出现的问题:找不到安装源或者检查软件配置出错

    安装启动时到以下界面 此时,按一下Tab键,将会出现在屏幕下方出现这一串文字 vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x2 ...

  4. 截图软件FastStone

    屏幕截图软件(FastStone Capture) 好用,可以粘贴 / 复制. 可以做页面设计,有屏幕标尺,取色器.

  5. CardView 卡片布局

    转自:https://www.baidu.com/link?url=WwHvfX3PB_egfQ6GFwxsDeq4NDzB2AW-zaTzskkNXs0qWnIcHyh3pN3Oqe6YO1lAmV ...

  6. ActiveMQ之HelloWorld

    JMS实现JMS接口的消息中间件 Provider:生产者 Consumer:消费者 PTP:Point to Point:点对点的消息模型 Pub/Sub:Publish/Subscribe:发布订 ...

  7. 100-days: Four

    Title: Weekend 'catch-up sheep' is a lie catch-up n.补做:赶做 play catch-up 通过追赶,达到同样的水平或程度 catch-up sle ...

  8. 【Linux 线程】常用线程函数复习《一》

    1.pthread_create以及pthread_self函数 /****************************************************************** ...

  9. tomcat启动闪退之内存不足及显著优化

    增大内存: 打开catalina.bat,@echo off回车输入  set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:Ma ...

  10. multithreading coding

    分类:公共资源问题.公交车问题 顺序:Qseater lab, bank, doctor [饭店] geust //yuec2 Yue Cheng package lab9; public abstr ...