首先,在網頁中按下F12鍵,查看定位網頁元素:
![](http://image.uc.cn/s/wemedia/s/upload/2024/9cc55ebe52b38d30311979fb951b4a59.jpg)
![](http://image.uc.cn/s/wemedia/s/upload/2024/e33a5d8097264dedd04b87d05d3fead3.jpg)
然後在kimi中輸入提示詞:
你是一個Python編程專家,要完成一個爬取網頁內容的Python腳本,具體步驟如下:
在F盤新建一個Excel文件:提示詞.xlsx
打開網頁:https://lobehub.com/zh/assistants
定位class="layoutkit-flexbox css-15l7r2q acss-vjqh32"的div標簽;
定位div標簽裏面所有的a標簽,
提取a標簽的href屬性值,前面加上”https://lobehub.com/zh”,構造成一個URL;
解析這個URL的源代碼;
在源代碼中定位class="acss-1ce01rv"的h1標簽,提取其文本內容作爲提示詞標題,寫入”提示詞.xlsx”這個Excel文件的第1列,列的標頭爲:提示詞標題;
在源代碼中定位class="layoutkit-flexbox css-o3n4io acss-pl6lf1"的h2標簽,提取其文本內容作爲提示詞簡介,寫入”提示詞.xlsx”這個Excel文件的第2列,列的標頭爲:提示詞簡介;
在源代碼中定位class="acss-7ksih7"的div標簽,提取其全部文本內容作爲提示詞內容,寫入”提示詞.xlsx”這個Excel文件的第3列,列的標頭爲:提示詞內容;
注意:
每一步都要輸出相關信息到屏幕;
網站有放爬蟲機制,要通過設置請求頭、延遲請求等方式來進行應對
![](http://image.uc.cn/s/wemedia/s/upload/2024/a06b13cced8318a83b6c8c630a190afb.jpg)
源代碼:
import requests
from bs4 import BeautifulSoup
import pandas as pd
from openpyxl import Workbook
# 定義目標URL
url = "https://lobehub.com/zh/assistants"
# 設置請求頭,模擬浏覽器訪問
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'
}
# 發送請求並獲取網頁內容
response = requests.get(url, headers=headers)
response.raise_for_status() # 如果請求失敗,將抛出異常
# 解析網頁內容
soup = BeautifulSoup(response.text, 'html.parser')
# 定位div標簽並提取所有a標簽的href屬性
div_tag = soup.find('div',_='layoutkit-flexbox css-15l7r2q acss-vjqh32')
a_tags = div_tag.find_all('a')
# 構造完整的URL
urls = ["https://lobehub.com/zh" + tag.get('href') for tag in a_tags]
# 定義Excel文件路徑
excel_path = 'F:/提示詞.xlsx'
# 創建工作簿和工作表
wb = Workbook()
ws = wb.active
# 設置列的標頭
ws.append(['提示詞標題', '提示詞簡介', '提示詞內容'])
# 循環處理每個URL
for idx, url in enumerate(urls, start=1):
print(f"正在處理URL: {url}")
# 發送請求並獲取網頁內容
response = requests.get(url, headers=headers)
response.raise_for_status()
# 解析網頁內容
soup = BeautifulSoup(response.text, 'html.parser')
# 提取h1標簽文本內容
h1_tag = soup.find('h1',_='acss-1ce01rv')
title = h1_tag.get_text(strip=True) if h1_tag else '無標題'
# 提取h2標簽文本內容
h2_tag = soup.find('h2',_='layoutkit-flexbox css-o3n4io acss-pl6lf1')
introduction = h2_tag.get_text(strip=True) if h2_tag else '無簡介'
# 提取div標簽文本內容
div_tag = soup.find('div',_='acss-7ksih7')
content = div_tag.get_text(strip=True) if div_tag else '無內容'
# 將提取的內容寫入Excel文件
ws.append([title, introduction, content])
# 打印到屏幕
print(f"標題: {title}")
print(f"簡介: {introduction}")
print(f"內容: {content}")
# 保存Excel文件
wb.save(excel_path)
print(f"數據已寫入Excel文件: {excel_path}")
![](http://image.uc.cn/s/wemedia/s/upload/2024/04927a5551546d7966e05241e1d63e67.jpg)