如何抓取这种类型的段落
我正在尝试从一个网站上抓取数据,但我不知道该如何指定段落。
我应该写什么呢?
这些段落的代码是这样的:
这是我得到的结果:
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-fs
的 spans
。
选择的代码应该是
paragraphs = soup.select('p.se-text-paragraph > span.se-fs-')