思路:

1.观察网页,找到img标签

2.通过requests和BS库来提取网页中的img标签

3.抓取img标签后,再把里面的src给提取出来,接下来就可以下载图片了

4.通过urllib的urllib.urlretrieve来下载图片并且放进文件夹里面(第一之前的准备工作就是获取当前路径然后新建一个文件夹)

5.如果有多张图片,不断的重复3-4

由于爬虫写得少,通过自己的调试,终于写了出来了

下面直接上代码:

1 #coding = 'utf-8'

2 importrequests3 from bs4 importBeautifulSoup4 importurllib5 importos6 importsys7 reload(sys)8 sys.setdefaultencoding("utf-8")9

10 if __name__ == '__main__':11 url = 'http://www.qiushibaike.com/'

12 res =requests.get(url)13 res.encoding = 'utf-8'

14 soup = BeautifulSoup(res.text, 'html.parser')15 imgs = soup.find_all("img")16

17 _path =os.getcwd()18 new_path = os.path.join(_path , 'pictures')19 if notos.path.isdir(new_path):20 os.mkdir(new_path)21 new_path += '\'

22

23 try:24 x = 1

25 if imgs ==[]:26 print "Done!"

27 for img inimgs:28 link = img.get('src')29 if 'http' inlink:30 print "It's downloading %s" %x + "th's piture"

31 urllib.urlretrieve(link, new_path + '%s.jpg' %x)32 x += 1

33

34 exceptException, e:35 printe36 else:37 pass

38 finally:39 ifx :40 print "It's Done!!!"

接下来上结果:

python3中的版本,略有有一点点不同,就是下载图片的方法需要加上request,然后才能使用urlretrieve方法进行下载

1 #!/usr/bin/python3

2 #coding = 'utf-8'

3

4 importrequests5 from bs4 importBeautifulSoup6 importurllib7 importos8 importsys9 #reload(sys)

10 #sys.setdefaultencoding("utf_8")

11

12 if __name__ == '__main__':13 url = 'http://www.qiushibaike.com/'

14 res =requests.get(url)15 res.encoding = 'utf-8'

16 print(res)17 soup = BeautifulSoup(res.text,'html.parser')18 #imgs = soup.find_all('img', attrs={'class': 'item_img'})

19 imgs = soup.find_all('img')20

21 _path =os.getcwd()22 new_path = os.path.join(_path,'pictures\\')#需要添加斜杠,才能将图片放进单独的文件夹里面

23 print(new_path)24

25 if notos.path.isdir(new_path):26 os.mkdir(new_path)27

28 #new_path = new_path + '\'

29 #print (str(new_path))

30

31 try:32 x = 1

33 if imgs ==[]:34 print ("Done!")35 print(len(imgs))36 for img inimgs:37 link = img.get('src')38 link = 'http:' +link39 #print (link)

40 ifTrue:41 print ("It's downloading %s" %x + "th's piture")42 #python3如下使用urlretrieve

43 #_new111 = new_path + '%s.jpg'%5

44 #print (_new111)

45 urllib.request.urlretrieve(link,new_path + '%s.jpg' %x)46 x += 1

47

48 exceptException:49 pass

50 #else:

51 #pass

52 finally:53 ifx:54 print ("It's Done!")

结果都是一样,就不再另外贴结果截图了

总结:

虽然一开始思路不清晰,而且对怎样把图片保存下来,都不是很熟

但是经过自己的思考,只要思路清楚了,确定了方向就好办了,至于函数不会用的话,可以直接百度查,很方便的

总而言之,写程序之前一定要有思路,边写边想思路是不行的,那样容易返工

不过最后还是写出来了,哈哈

也请大家来共同学习和指正

----------------------

转载的话请大家注明出处哦,谢谢了

python爬虫爬取网页图片存储本地_Python爬虫抓取糗百的图片,并存储在本地文件夹...相关推荐

  1. python爬取网页数据软件_python爬虫入门10分钟爬取一个网站

    一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...

  2. python爬取网页数据流程_Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

  3. python爬取文本中的成语_python正则表达式抓取成语网站

    #anthor jiqunpeng #time 20121124 import urllib import re def getHtml(url): #从URL中读取html内容 page = url ...

  4. java jsoup爬动态网页_使用Jsoup+HtmlUnit抓取动态网页数据

    最后更新日期为2018.1.3 只为自己留个记录 待添加功能: 1.获取历史全部消息 2.爬取大于10条数据 3.自定义抓取公众号信息 package cc.buckler.test; import ...

  5. matlab抓取网页信息,如何利用Matlab抓取网页数据

    如何利用Matlab抓取网页数据 2019-01-01 %朋友需要做金融方面的分析,要求从网站上下载大量的数据,一个一个复制粘贴太费事.我写了一个简单的网络爬虫,主要用到正则表达式,可以自动下载网页源 ...

  6. 服务器处理蜘蛛抓取网页的过程,搜索引擎蜘蛛抓取页面过程图解

    学习seo的人经常在网上看到一句话:搜索引擎蜘蛛跟浏览器差不多,都是抓取页面.那么到底哪些一样哪些不一样?Ethan就通过浏览器帮助大家理解搜索引擎蜘蛛怎样抓取页面. 首先看一张图,是用firebug ...

  7. python爬虫爬音乐格式是什么_Python爬虫练习:去爬某平台音乐

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于IT共享之家 ,作者IT共享者 现在的听歌软件动不动就是各种 ...

  8. python爬取网页json数据_python爬取json数据库

    手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二. ...

  9. python爬取数据的原理_Python爬虫原理

    前言 简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现我们眼前: 一.爬虫是什 ...

  10. python爬取新闻后提炼_Python爬虫开发的3大难题,别上了贼船才发现,水有多深...

    写爬虫,是一个非常考验综合实力的活儿.有时候,你轻而易举地就抓取到了想要的数据:有时候,你费尽心思却毫无所获. 好多Python爬虫的入门教程都是一行代码就把你骗上了"贼船",等上 ...

最新文章

  1. axure中怎么把图片变圆_orcad中怎么创建带图片的Title Block?
  2. ecshop根目录调用_ecshop列表页 调用二级分类教程
  3. 软件工程师的6年总结
  4. 2017西安交大ACM小学期数据结构 [又是树状数组、异或]
  5. C点滴成海------Dev C++怎么修改成简体中文
  6. mysql 传送时间_vue处理mysql数据库中的时间数据(datetime)
  7. idea 工作区右边框提示_建立自己的制造商工作区的提示
  8. 解决IntelliJ IDEA在笔记本屏幕中部分界面显示不全被遮挡的问题
  9. TCP三次挥手四次握手
  10. 清华大学计算机科学王昊,Elearning平台中资源传输方案的设计与实现以清华网络学堂为例.pdf...
  11. 怎样做中国的自由译者
  12. 自检、开机故障及主板厂商资料
  13. htlm5实习报告_JSP实习报告
  14. 单页Web设计优秀案例
  15. installshield mysql_InstallShield 调用批处理部署MySql数据库 | 学步园
  16. Android 读取Txt文件内容
  17. 最美中国字|“粘”字书写技巧这样写,保证工整又好看!
  18. 关于我——人工智能专业大二的一年
  19. 山西财经大学计算机二级成绩,山西财经大学2018年各省市各批次录取分数线
  20. 宿主机kernel识别kvm-vcpu线程的一种方法

热门文章

  1. 呼吸灯verilog实现
  2. 文献检索——Web of Science|CSDN创作打卡
  3. 数值分析实验(四)之方程求根的数值方法
  4. Hadoop数字统计
  5. sqlserver 日期与字符串之间的转换
  6. 嵌入式Linux应用学习(一)------QT控制LED设备硬件
  7. 此生未完成 --- 于娟
  8. 网络安全与渗透:sql注入,一文详解(九)此生无悔入华夏,男儿何不带吴钩
  9. 推荐一款轻量级的支持Markdown的团队知识分享开源软件
  10. 面向ASIC的逻辑综合