1. 程式人生 > >python爬蟲beautifulsoup4系列3

python爬蟲beautifulsoup4系列3

AS 覆蓋 打開 ima itl 電腦 etc write pen

前言

本篇手把手教大家如何爬取網站上的圖片,並保存到本地電腦

一、目標網站

1.隨便打開一個風景圖的網站:http://699pic.com/sousuo-218808-13-1.html

2.用firebug定位,打開firepath裏css定位目標圖片

3.從下圖可以看出,所有的圖片都是img標簽,class屬性都是lazy

技術分享圖片

二、用find_all找出所有的標簽

1.find_all(class_="lazy")獲取所有的圖片對象標簽

2.從標簽裏面提出jpg的url地址和title

技術分享圖片
 1 # coding:utf-8
 2 from bs4 import BeautifulSoup
 3 import requests
 4 import os
 5 r = requests.get("http://699pic.com/sousuo-218808-13-1.html")
 6 fengjing = r.content
 7 soup = BeautifulSoup(fengjing, "html.parser")
 8 # 找出所有的標簽
 9 images = soup.find_all(class_="lazy")
10 # print images # 返回list對象
11 
12 for i in images:
13     jpg_rl = i["data-original"]  # 獲取url地址
14     title = i["title"]           # 返回title名稱
15     print title
16     print jpg_rl
17     print ""
技術分享圖片

三、保存圖片

1.在當前腳本文件夾下創建一個jpg的子文件夾

2.導入os模塊,os.getcwd()這個方法可以獲取當前腳本的路徑

3.用open打開寫入本地電腦的文件路徑,命名為:os.getcwd()+"\\jpg\\"+title+‘.jpg‘(命名重復的話,會被覆蓋掉)

4.requests裏get打開圖片的url地址,content方法返回的是二進制流文件,可以直接寫到本地

技術分享圖片

四、參考代碼

技術分享圖片
 1 # coding:utf-8
 2 from bs4 import BeautifulSoup
 3 import requests
 4 import os
 5 r = requests.get("http://699pic.com/sousuo-218808-13-1.html")
 6 fengjing = r.content
 7 soup = BeautifulSoup(fengjing, "html.parser")
 8 # 找出所有的標簽
 9 images = soup.find_all(class_="lazy")
10 # print images # 返回list對象
11 
12 for i in images:
13     jpg_rl = i["data-original"]
14     title = i["title"]
15     print title
16     print jpg_rl
17     print ""
18     with open(os.getcwd()+"\\jpg\\"+title+‘.jpg‘, "wb") as f:
19         f.write(requests.get(jpg_rl).content)
技術分享圖片

python爬蟲beautifulsoup4系列3