思路:html
1.观察网页,找到img标签python
2.经过requests和BS库来提取网页中的img标签函数
3.抓取img标签后,再把里面的src给提取出来,接下来就能够下载图片了学习
4.经过urllib的urllib.urlretrieve来下载图片而且放进文件夹里面(第一以前的准备工做就是获取当前路径而后新建一个文件夹)url
5.若是有多张图片,不断的重复3-4spa
因为爬虫写得少,经过本身的调试,终于写了出来了调试
下面直接上代码:code
1 #coding = 'utf-8' 2 import requests 3 from bs4 import BeautifulSoup 4 import urllib 5 import os 6 import sys 7 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 not os.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 in imgs: 28 link = img.get('src') 29 if 'http' in link: 30 print "It's downloading %s" %x + "th's piture" 31 urllib.urlretrieve(link, new_path + '%s.jpg' %x) 32 x += 1 33 34 except Exception, e: 35 print e 36 else: 37 pass 38 finally: 39 if x : 40 print "It's Done!!!"
接下来上结果:htm
python3中的版本,略有有一点点不一样,就是下载图片的方法须要加上request,而后才能使用urlretrieve方法进行下载blog
1 #!/usr/bin/python3 2 #coding = 'utf-8' 3 4 import requests 5 from bs4 import BeautifulSoup 6 import urllib 7 import os 8 import sys 9 #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 not os.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 in imgs: 37 link = img.get('src') 38 link = 'http:' + link 39 #print (link) 40 if True: 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 except Exception: 49 pass 50 # else: 51 # pass 52 finally: 53 if x: 54 print ("It's Done!")
结果都是同样,就再也不另外贴结果截图了
总结:
虽然一开始思路不清晰,并且对怎样把图片保存下来,都不是很熟
可是通过本身的思考,只要思路清楚了,肯定了方向就好办了,至于函数不会用的话,能够直接百度查,很方便的
总而言之,写程序以前必定要有思路,边写边想思路是不行的,那样容易返工
不过最后仍是写出来了,哈哈
也请你们来共同窗习和指正
----------------------
转载的话请你们注明出处哦,谢谢了