AI網絡爬蟲:用kimichat自動批量提取網頁內容

部落人有文化 2024-05-14 08:36:32

首先,在網頁中按下F12鍵,查看定位網頁元素:

然後在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列,列的標頭爲:提示詞內容;

注意:

每一步都要輸出相關信息到屏幕;

網站有放爬蟲機制,要通過設置請求頭、延遲請求等方式來進行應對

源代碼:

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}")

1 阅读:158

部落人有文化

簡介:感謝大家的關注