python爬蟲爬取好看的圖片
遇到好看的圖片你還在一張張用滑鼠點選儲存?作為一個IT從業者那就out了。。。必須高大上起來
今天給大家介紹如何用爬蟲爬取好看的圖片,話不多說,開始。。。。。
首先小夥伴們需要確保自己已經安裝了python和pip,並且已經配置好了環境變數,接下來需要安裝今天所用到的第三方庫,requests和BeautifulSoup(這是已經安裝好的,大家可以使用pip install命令進行安裝)
安裝完成後就開始我們今天的爬蟲過程,先上程式碼
#-*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
def get_html(urllist):
res = requests.get(urllist)
soup = BeautifulSoup(res.text, 'html.parser')
src = soup.find_all("img",class_="BDE_Image")
return src
def write_img(url):
for link in url:
picurl = link.get('src')
picres = requests.get(picurl).content
file = open(r"C:\images\%s.jpg"%picurl[-9:-4],"wb")
file.write(picres)
file.close()
url = get_html("https://tieba.baidu.com/p/5254036393")
write_img(url)
最後爬出的效果如下
下面一行一行解釋一下實現的過程
import requests#匯入requests模組
from bs4 import BeautifulSoup#匯入BeautifulSoup模組
def get_html(urllist):
res = requests.get(urllist)#獲取網頁請求
soup = BeautifulSoup(res.text, 'html.parser')#將網頁轉化為soup物件標準xml輸出
src = soup.find_all("img",class_="BDE_Image")#找到所有img標籤,並且class=BDE_Image的項
return src#返回image物件集合
def write_img(url):
for link in url:
picurl = link.get('src')#獲取image的url
picres = requests.get(picurl).content#獲取image二進位制流資料
file = open(r"C:\images\%s.jpg"%picurl[-9:-4],"wb")#建立圖片
file.write(picres)#寫入
file.close()#關閉
過程中最主要的是如何找到image的url,首先開啟需要下載圖片的網頁,按F12開啟開發者工具,然後在網頁原始碼中查詢image的地址
從網頁原始碼中可以看出,所以得圖片都具有某一種共性,如都是img標籤且class都為BDE_Image,因此可以BeautifulSoup的方法或者正則表示式提取出所有的image地址,然後將圖片儲存下來。
當然爬取圖片的方法有很多種比如使用urllib2庫等,各位小夥伴可以根據實際情況挑選一種適合自己的方法,接下來就可以裝X了。。。。