1. 程式人生 > 實用技巧 >Python爬取堆糖網優美古風頭像(附原始碼)

Python爬取堆糖網優美古風頭像(附原始碼)

前言

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理

如果大家想要完成爬蟲程式,先安裝和匯入幾個包

  • 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)

效果圖