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!!!"

接下来上结果:

484710-20161122005154190-18402110.png

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!")

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

总结:

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

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

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值