爬蟲---Beautiful Soup 爬取圖片


  上一篇簡單的介紹Beautiful Soup 的基本用法,這一篇寫下如何爬取網站上的圖片,並保存下來

 

爬取圖片

1.找到一個福利網站:http://www.xiaohuar.com/list-1-1.html

2.通過F12進行定位圖片

3.通過下圖可以看到標簽為img,然后通過width="210"的屬性

 

爬取方法

1.通過find_all()的方法進行查找圖片位置

2.篩選出圖片的URL和圖片名稱

3.篩選后會發現其中有一些圖片URL不完整

4.這個時候需要在代碼中加一個判斷,如何URL不完整 我們就給他補充完整

import requests
from bs4 import BeautifulSoup
import os
# 請求地址
url = 'http://www.xiaohuar.com/list-1-1.html'
html = requests.get(url).content
# BeautifulSoup 實例化
soup  = BeautifulSoup(html,'html.parser')
jpg_data = soup.find_all('img',width="210")
for i in jpg_data:
    data = i['src']
    name = i['alt']
# 判斷URL是否完整
    if "https://www.dxsabc.com/" not in data:
        data = 'http://www.xiaohuar.com'+ data

 

保存圖片

1.判斷一個文件夾是否存在,不存在就重新創建

2.request模塊請求圖片的URL

3.通過content返回圖片二進制,進行寫入文件夾中

# coding:utf-8
import requests
from bs4 import BeautifulSoup
import os
# 創建一個文件夾名稱
FileName = 'tupian'
if not os.path.exists(os.path.join(os.getcwd(), FileName)):     # 新建文件夾   
     print(u'建了一個名字叫做', FileName, u'的文件夾!')
     os.mkdir(os.path.join(os.getcwd(),'tupian'))
else:
    print(u'名字叫做', FileName, u'的文件夾已經存在了!')
url = 'http://www.xiaohuar.com/list-1-1.html'
html = requests.get(url).content    # 返回html
soup  = BeautifulSoup(html,'html.parser')   # BeautifulSoup對象
jpg_data = soup.find_all('img',width="210") # 找到圖片信息
for i in jpg_data:
    data = i['src'] # 圖片的URL
    name = i['alt'] # 圖片的名稱
    if "https://www.dxsabc.com/" not in data:
        data = 'http://www.xiaohuar.com'+data
    r2 = requests.get(data)
    fpath = os.path.join(FileName,name)
    with open(fpath+'.jpg','wb+')as f : # 循環寫入圖片
        f.write(r2.content)
print('保存成功,快去查看圖片吧!!')

圖片就不貼了,喜歡的可以自己動手寫一寫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM