python爬虫爬取网页图片存储本地_Python爬虫抓取糗百的图片,并存储在本地文件夹...
思路:
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爬虫抓取糗百的图片,并存储在本地文件夹...相关推荐
- python爬取网页数据软件_python爬虫入门10分钟爬取一个网站
一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...
- python爬取网页数据流程_Python爬虫爬取数据的步骤
爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...
- python爬取文本中的成语_python正则表达式抓取成语网站
#anthor jiqunpeng #time 20121124 import urllib import re def getHtml(url): #从URL中读取html内容 page = url ...
- java jsoup爬动态网页_使用Jsoup+HtmlUnit抓取动态网页数据
最后更新日期为2018.1.3 只为自己留个记录 待添加功能: 1.获取历史全部消息 2.爬取大于10条数据 3.自定义抓取公众号信息 package cc.buckler.test; import ...
- matlab抓取网页信息,如何利用Matlab抓取网页数据
如何利用Matlab抓取网页数据 2019-01-01 %朋友需要做金融方面的分析,要求从网站上下载大量的数据,一个一个复制粘贴太费事.我写了一个简单的网络爬虫,主要用到正则表达式,可以自动下载网页源 ...
- 服务器处理蜘蛛抓取网页的过程,搜索引擎蜘蛛抓取页面过程图解
学习seo的人经常在网上看到一句话:搜索引擎蜘蛛跟浏览器差不多,都是抓取页面.那么到底哪些一样哪些不一样?Ethan就通过浏览器帮助大家理解搜索引擎蜘蛛怎样抓取页面. 首先看一张图,是用firebug ...
- python爬虫爬音乐格式是什么_Python爬虫练习:去爬某平台音乐
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于IT共享之家 ,作者IT共享者 现在的听歌软件动不动就是各种 ...
- python爬取网页json数据_python爬取json数据库
手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二. ...
- python爬取数据的原理_Python爬虫原理
前言 简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现我们眼前: 一.爬虫是什 ...
- python爬取新闻后提炼_Python爬虫开发的3大难题,别上了贼船才发现,水有多深...
写爬虫,是一个非常考验综合实力的活儿.有时候,你轻而易举地就抓取到了想要的数据:有时候,你费尽心思却毫无所获. 好多Python爬虫的入门教程都是一行代码就把你骗上了"贼船",等上 ...
最新文章
- axure中怎么把图片变圆_orcad中怎么创建带图片的Title Block?
- ecshop根目录调用_ecshop列表页 调用二级分类教程
- 软件工程师的6年总结
- 2017西安交大ACM小学期数据结构 [又是树状数组、异或]
- C点滴成海------Dev C++怎么修改成简体中文
- mysql 传送时间_vue处理mysql数据库中的时间数据(datetime)
- idea 工作区右边框提示_建立自己的制造商工作区的提示
- 解决IntelliJ IDEA在笔记本屏幕中部分界面显示不全被遮挡的问题
- TCP三次挥手四次握手
- 清华大学计算机科学王昊,Elearning平台中资源传输方案的设计与实现以清华网络学堂为例.pdf...
- 怎样做中国的自由译者
- 自检、开机故障及主板厂商资料
- htlm5实习报告_JSP实习报告
- 单页Web设计优秀案例
- installshield mysql_InstallShield 调用批处理部署MySql数据库 | 学步园
- Android 读取Txt文件内容
- 最美中国字|“粘”字书写技巧这样写,保证工整又好看!
- 关于我——人工智能专业大二的一年
- 山西财经大学计算机二级成绩,山西财经大学2018年各省市各批次录取分数线
- 宿主机kernel识别kvm-vcpu线程的一种方法