Python爬取堆糖網優美古風頭像(附原始碼)
阿新 • • 發佈:2020-11-05
前言
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理
如果大家想要完成爬蟲程式,先安裝和匯入幾個包
- requests 網路庫
- bs4 頁面選擇器 網頁上篩選資料
安裝包
- pip install requests
- pip install bs4
os python語言自帶的一個工具庫
ssl工具包 https協議的網站是基於ssl加密從而傳輸資料的一種網站
一般爬蟲的過程
- 模擬瀏覽器
- 強制取消證書認證 看情況去做的 http的協議網站 則不需要
- requests去做http請求,並且拿到網頁資料
- 資料篩選 拿到我們想要的資料
- 下載
本次目標
爬取堆糖網圖片
https://www.duitang.com/
爬蟲程式碼
匯入工具
import ssl import os # 下載包 import urllib.request # 網路包 import requests # 網頁選擇器 from bs4 import BeautifulSoup
請求頭
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36' }
預設請求https網站不需要證書認證
ssl._create_default_https_context = ssl._create_unverified_context
爬蟲流程
def get_images(url): images_html = requests.get(url, headers=headers).text # print(images_html) soup = BeautifulSoup(images_html, 'lxml') images_list = soup.find_all('div', class_='mbpho') # print(images_list) for image in images_list: image_data = image.find('a', class_='a') image_url = image_data.find('img')['src'] # 獲取圖片名稱 下載圖片時需要給圖片檔案一個檔名 image_id = image_data.find('img')['data-rootid'] # print(image_url, image_id) print(os.path.splitext(image_url)[-1]) try: urllib.request.urlretrieve(image_url, './古風頭像/' + image_id + os.path.splitext(image_url)[-1]) print('下載成功...') except: pass url = 'https://www.duitang.com/search/?kw=%E5%8F%A4%E9%A3%8E%E5%A4%B4%E5%83%8F&type=feed' get_images(url)