1. 程式人生 > 其它 >爬蟲(3)-桌布族

爬蟲(3)-桌布族

# -*- coding: utf-8 -*-
"""
@Time    :  2022/3/19 16:31
@Author  : Andrew
@File    : 抓取優美相簿.py
"""
# 1.拿到主頁面的地址,獲取主頁面的原始碼
# 2.通過f12進行定位,在該區域尋找圖片,看是否需要進入子頁面提取
# 3.檢查發現,在本頁面已經發現了圖片的src,但是需要與https:拼接
# 4.下載圖片 將沒用的資料資料夾設為exclusion,這樣下載的時候就不會太卡(因為pycharm會設定索引)
import re
import time

from bs4 import BeautifulSoup
import requests # imgs = [] for i in range(1, 3, 1): domain = "https://www.bizhizu.cn/" url = "https://www.bizhizu.cn/wallpaper/" + str(i) + ".html" resp = requests.get(url) resp.encoding = "utf-8" content = resp.text page = BeautifulSoup(resp.text, "html.parser") div = page.find("
div", attrs={"class": "imgcont"}) lis = div.find_all("li") for li in lis: a = li.find_all("a")[1:] href = a[0].get("href") imageName = a[0].text # 獲取第二個子頁面,並轉bs4 contentChild1 = requests.get(href) page2 = BeautifulSoup(contentChild1.text, "html.parser
") # page裡面找class為text_con的p標籤 p = page2.find("p", attrs={"class": "text_con"}) # p裡面找class為xuButton的a標籤 a = p.find("a", attrs={"class": "xuButton"}) # 獲取a的href,並進行拼接 href_2 = a.get("href") urlChild3 = domain+href_2 # 獲取第三個子頁面原始碼 contentChild3 = requests.get(urlChild3) page3 = BeautifulSoup(contentChild3.text, "html.parser") a_showImage = page3.find("a", attrs={"class": "menu s4", "id": "download_yt"}) href3 = a_showImage.get("href") imgIsDownload = requests.get(href3) end = href3.split("/")[-1].split(".")[-1] # 圖片內容寫入檔案 with open("./桌布族/"+imageName+"."+end, mode="wb") as f: f.write(imgIsDownload.content) time.sleep(1) print(href3, 'over!!') resp.close()
#這裡就是要看得懂網頁結構,網頁設計的有時候高清圖片的下載連結在當前頁面的某個子連結裡,需要不斷地requests.get獲取原始碼,再bs4的find或者find_all進行唯一性標籤定位,可能會重複多次,但套路一樣

 

搜尋

複製