如何抓取这种类型的段落

-2 投票
1 回答
33 浏览
提问于 2025-04-14 16:29

我正在尝试从一个网站上抓取数据,但我不知道该如何指定段落。

我应该写什么呢?

这些段落的代码是这样的:

在这里输入图片描述

这是我得到的结果:

import tkinter as tk
from tkinter import simpledialog
import requests
from bs4 import BeautifulSoup
import csv
import os

def scrape_url(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    paragraphs = soup.find_all('p')
    
    download_path = os.path.join(os.path.expanduser('~'), 'Downloads', 'paragraphs.csv')
    
    with open(download_path, 'w', newline='', encoding='utf-8') as file:
        writer = csv.writer(file)
        writer.writerow(['Texte du Paragraphe'])
        for paragraph in paragraphs:
            writer.writerow([paragraph.get_text()])
            
    print(f"Les paragraphes ont été écrits avec succès dans '{download_path}'.")

def ask_url():
    ROOT = tk.Tk()
    ROOT.withdraw()
    USER_INP = simpledialog.askstring(title="Scraper Web", prompt="Entrez l'URL du site à scraper:")
    return USER_INP

url = ask_url()

if url:
    scrape_url(url)
else:
    print("Aucune URL fournie.")

1 个回答

1

你的代码是在寻找段落,但实际上应该是在寻找段落里面的 spans,这取决于你发布的HTML内容。

你应该使用 CSS选择器 来找到在类名为 se-text-paragraph 的段落中,类名为 se-fsspans

选择的代码应该是

paragraphs = soup.select('p.se-text-paragraph > span.se-fs-')

撰写回答