Python爬虫抓取糗百的图片,并存储在本地文件夹
思路:
1.觀察網(wǎng)頁(yè),找到img標(biāo)簽
2.通過requests和BS庫(kù)來(lái)提取網(wǎng)頁(yè)中的img標(biāo)簽
3.抓取img標(biāo)簽后,再把里面的src給提取出來(lái),接下來(lái)就可以下載圖片了
4.通過urllib的urllib.urlretrieve來(lái)下載圖片并且放進(jìn)文件夾里面(第一之前的準(zhǔn)備工作就是獲取當(dāng)前路徑然后新建一個(gè)文件夾)
5.如果有多張圖片,不斷的重復(fù)3-4
由于爬蟲寫得少,通過自己的調(diào)試,終于寫了出來(lái)了
下面直接上代碼:
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!!!"
接下來(lái)上結(jié)果:
python3中的版本,略有有一點(diǎn)點(diǎn)不同,就是下載圖片的方法需要加上request,然后才能使用urlretrieve方法進(jìn)行下載
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\\')#需要添加斜杠,才能將圖片放進(jìn)單獨(dú)的文件夾里面
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!")
結(jié)果都是一樣,就不再另外貼結(jié)果截圖了
總結(jié):
雖然一開始思路不清晰,而且對(duì)怎樣把圖片保存下來(lái),都不是很熟
但是經(jīng)過自己的思考,只要思路清楚了,確定了方向就好辦了,至于函數(shù)不會(huì)用的話,可以直接百度查,很方便的
總而言之,寫程序之前一定要有思路,邊寫邊想思路是不行的,那樣容易返工
不過最后還是寫出來(lái)了,哈哈
也請(qǐng)大家來(lái)共同學(xué)習(xí)和指正
----------------------
轉(zhuǎn)載的話請(qǐng)大家注明出處哦,謝謝了
總結(jié)
以上是生活随笔為你收集整理的Python爬虫抓取糗百的图片,并存储在本地文件夹的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脆肉鲩什么时候吃最好 (吃脆肉鲩有什么好
- 下一篇: 印度时间(古印度时间轴梳理)