python爬蟲beautifulsoup4系列3
阿新 • • 發佈:2018-05-12
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