@@CodeShiba 但我改了以後,卻還是顯示"An error occurred while loading the image...."(我是抓PTT的圖片來使用,程式撰寫也是跟老師一樣;而我點開圖片鏈結,會到imgur這個頁面。我不知道是不是imgur的問題?)
@snow2610390111 ай бұрын
很棒的教學 但我現在都叫CHATGPT寫了XD
@CodeShiba11 ай бұрын
哈哈 優秀
@milk-coffeedrink3885 ай бұрын
請問Luka 大大, 關於表特爬蟲的那邊, 最後雖然有將圖片存成檔案, 但檔案卻打不開, python 點擊後顯示: Image not loaded Try to open it externally to fix format problem 實際去資料夾確認, 檔案大小位元為 0 ; 回去看執行結果中的url 與 正在下載圖片 的顯示網址用瀏覽器都是可以正常開啟的 再懇請大大協助解惑, 感謝您!
@CodeShiba5 ай бұрын
看起來沒有儲存成功 程式碼貼上來看看
@milk-coffeedrink3885 ай бұрын
以下是跟著大大影片一起 key in 的程式碼: import requests from bs4 import BeautifulSoup import os # 建立資料夾用的 def download_img(url, save_path) : print(f"正在下載圖片:{url}") response = requests.get(url) with open(save_path, 'wb') as file: file.write(response.content) print("-" * 30) def main(): url = "www.ptt.cc/bbs/Beauty/M.1686997472.A.FDA.html" headers = {"Cookie" : "over18=1"} response = requests.get(url, headers= headers) soup = BeautifulSoup(response.text, "html.parser") # print(soup.prettify()) spans= soup.find_all("span",class_="article-meta-value") title = spans[2].text # 標題 # 1. 建立一個圖片資料夾 dir_name = f"images/{title}" if not os.path.exists(dir_name): os.makedirs(dir_name) # 2. 找到網頁中的所有圖片 links = soup.find_all("a") allow_file_name = ["jpg", "png", "jpeg", "gif"] for link in links: href = link.get("href") if not href: continue file_name = href.split("/")[-1] extension = href.split(".")[-1].lower() # split 表用甚麼當分隔符號 # print(extension) if extension in allow_file_name : print(f"檔案型態:{extension}") print(f"url:{href}") download_img(href,f"{dir_name}/{file_name}") # print(href) # 3. 如果是圖片的話下載 if __name__ == "__main__" : main()
感謝老師提點! 我發現留言的父級元素都有class_=push 我先創建列表x=[] 利用img.find_parent(class_="push")找到父級元素含有class_="push"的網址 將它們丟入x: for img in links: if img.find_parent(class_="push"): x.append(img.text) 在之後爬網頁圖片的迴圈中加入 if href in x: continue 跳過x內的網址 就能只爬文章不爬留言了