Python-爬蟲9-找出所有的圖片、或者 .png / .jpg 結尾的圖片

1.找出所有 .png 或  .jpg 結尾的圖片

2.利用 regex 找出所有 .png 或 .jpg 結尾的圖片

3.找出所有 .png 結尾且含 'banner_pc_06.jpg' 的圖片

 

抓取目標位置:https://rookiesavior.net/

1.找出所有 .png 或  .jpg 結尾的圖片

# 找出所有 .png 結尾的圖片
    imgs = soup.find_all('img')
    for img in imgs:
        if 'src' in img.attrs:
            if img['src'].endswith('.png'):
                print(img['src'])
                

2.利用 regex 找出所有 .png 或 .jpg 結尾的圖片

# 利用 regex 找出所有 .jpg 結尾的圖片
    for img in soup.find_all('img', {'src': re.compile('.jpg')}):
        print(img['src'])

3.找出所有 .png 結尾且含 'banner_pc_06.jpg' 的圖片

# 找出所有 .png 結尾且含 'banner_pc_06.jpg' 的圖片
    imgs = soup.find_all('img')
    for img in imgs:
        if 'src' in img.attrs:
            if 'h2-pic-02.png' in img['src'] and img['src'].endswith('.png'):
                print(img['src'])
    
# 利用 regex 找出所有 .jgp 結尾且含 'banner_pc_06.jpg' 的圖片
    for img in soup.find_all('img', {'src': re.compile('banner_pc_06.jpg')}):
        print(img['src'])
    

完整程式碼:

import requests
import re
from bs4 import BeautifulSoup

def main():
    resp = requests.get('https://rookiesavior.net/')
    soup = BeautifulSoup(resp.text, 'html.parser')
   
    #方法一
    # 找出所有 .jpg 結尾的圖片
    imgs = soup.find_all('img')
   
    
    for img in imgs:
        if 'src' in img.attrs:
            if img['src'].endswith('.jpg'):
                print(img['src'])
             
    
    # 方法二
    # 利用 regex 找出所有 .jpg 結尾的圖片
    for img in soup.find_all('img', {'src': re.compile('.jpg')}):
        print(img['src'])

if __name__ == '__main__':
    main()

參考

或者

import requests
import re
from bs4 import BeautifulSoup

def main():
    resp = requests.get('https://www.starbucks.com.tw/home/index.jspx?r=57')
    soup = BeautifulSoup(resp.text, 'html.parser')

    
# 找出所有 .jpg 結尾且含 'banner_pc_06.jpg' 的圖片
    imgs = soup.find_all('img')
    for img in imgs:
        if 'src' in img.attrs:
            if 'banner_pc_06.jpg' in img['src'] and img['src'].endswith('.jpg'):
                print(img['src'])
    
# 利用 regex 找出所有 .jpg 結尾且含 'banner_pc_06.jpg' 的圖片
    for img in soup.find_all('img', {'src': re.compile('banner_pc_06.jpg')}):
        print(img['src'])
    
if __name__ == '__main__':
    main()
    
    

 

參考

 

 

Yiru@Studio - 關於我 - 意如