首先,在網(wǎng)頁中按下F12鍵,查看定位網(wǎng)頁元素: 然后在kimi中輸入提示詞: 你是一個Python編程專家,要完成一個爬取網(wǎng)頁內(nèi)容的Python腳本,具體步驟如下: 在F盤新建一個Excel文件:提示詞.xlsx 打開網(wǎng)頁:https://lobehub.com/zh/assistants 定位class="layoutkit-flexbox css-15l7r2q acss-vjqh32"的div標(biāo)簽; 定位div標(biāo)簽里面所有的a標(biāo)簽, 提取a標(biāo)簽的href屬性值,前面加上”https://lobehub.com/zh”,構(gòu)造成一個URL; 解析這個URL的源代碼; 在源代碼中定位class="acss-1ce01rv"的h1標(biāo)簽,提取其文本內(nèi)容作為提示詞標(biāo)題,寫入”提示詞.xlsx”這個Excel文件的第1列,列的標(biāo)頭為:提示詞標(biāo)題; 在源代碼中定位class="layoutkit-flexbox css-o3n4io acss-pl6lf1"的h2標(biāo)簽,提取其文本內(nèi)容作為提示詞簡介,寫入”提示詞.xlsx”這個Excel文件的第2列,列的標(biāo)頭為:提示詞簡介; 在源代碼中定位class="acss-7ksih7"的div標(biāo)簽,提取其全部文本內(nèi)容作為提示詞內(nèi)容,寫入”提示詞.xlsx”這個Excel文件的第3列,列的標(biāo)頭為:提示詞內(nèi)容; 注意: 每一步都要輸出相關(guān)信息到屏幕; 網(wǎng)站有放爬蟲機(jī)制,要通過設(shè)置請求頭、延遲請求等方式來進(jìn)行應(yīng)對 源代碼: import requests from bs4 import BeautifulSoup import pandas as pd from openpyxl import Workbook # 定義目標(biāo)URL url = "https://lobehub.com/zh/assistants" # 設(shè)置請求頭,模擬瀏覽器訪問 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } # 發(fā)送請求并獲取網(wǎng)頁內(nèi)容 response = requests.get(url, headers=headers) response.raise_for_status() # 如果請求失敗,將拋出異常 # 解析網(wǎng)頁內(nèi)容 soup = BeautifulSoup(response.text, 'html.parser') # 定位div標(biāo)簽并提取所有a標(biāo)簽的href屬性 div_tag = soup.find('div', class_='layoutkit-flexbox css-15l7r2q acss-vjqh32') a_tags = div_tag.find_all('a') # 構(gòu)造完整的URL urls = ["https://lobehub.com/zh" + tag.get('href') for tag in a_tags] # 定義Excel文件路徑 excel_path = 'F:/提示詞.xlsx' # 創(chuàng)建工作簿和工作表 wb = Workbook() ws = wb.active # 設(shè)置列的標(biāo)頭 ws.append(['提示詞標(biāo)題', '提示詞簡介', '提示詞內(nèi)容']) # 循環(huán)處理每個URL for idx, url in enumerate(urls, start=1): print(f"正在處理URL: {url}") # 發(fā)送請求并獲取網(wǎng)頁內(nèi)容 response = requests.get(url, headers=headers) response.raise_for_status() # 解析網(wǎng)頁內(nèi)容 soup = BeautifulSoup(response.text, 'html.parser') # 提取h1標(biāo)簽文本內(nèi)容 h1_tag = soup.find('h1', class_='acss-1ce01rv') title = h1_tag.get_text(strip=True) if h1_tag else '無標(biāo)題' # 提取h2標(biāo)簽文本內(nèi)容 h2_tag = soup.find('h2', class_='layoutkit-flexbox css-o3n4io acss-pl6lf1') introduction = h2_tag.get_text(strip=True) if h2_tag else '無簡介' # 提取div標(biāo)簽文本內(nèi)容 div_tag = soup.find('div', class_='acss-7ksih7') content = div_tag.get_text(strip=True) if div_tag else '無內(nèi)容' # 將提取的內(nèi)容寫入Excel文件 ws.append([title, introduction, content]) # 打印到屏幕 print(f"標(biāo)題: {title}") print(f"簡介: {introduction}") print(f"內(nèi)容: {content}") # 保存Excel文件 wb.save(excel_path) print(f"數(shù)據(jù)已寫入Excel文件: {excel_path}") |
|