剪贴簿 body 来自项目 gutenberg de 的文本

scrape book body text from project gutenberg de

我是 python 的新手,我正在寻找一种方法来提取 gutenberg-de 上可用的现有开源书籍,例如 this one 我需要使用它们进行进一步的分析和文本挖掘。

我尝试了这个在教程中找到的代码,它提取了元数据,但它没有提供 body 内容,而是给了我需要从中抓取文本的“页面”列表。

import requests
from bs4 import BeautifulSoup

# Make a request
page = requests.get(
    "https://www.projekt-gutenberg.org/keller/heinrich/")
soup = BeautifulSoup(page.content, 'html.parser')

# Extract title of page
page_title = soup.title

# Extract body of page
page_body = soup.body

# Extract head of page
page_head = soup.head

# print the result
print(page_title, page_head)

我想我可以用它作为提取它的第二步吗?不过,我不确定如何。

理想情况下,我希望以表格方式存储它们并能够将它们保存为 csv,同时保留元数据作者、标题、年份和章节。有什么想法吗?

会发生什么?

首先你会得到一个页面列表,因为你没有请求正确的 url 它到:

page = requests.get('https://www.projekt-gutenberg.org/keller/heinrich/hein101.html')

建议如果你循环所有 urls 将内容存储在 dictslist 中并将其推送到 csvpandas 或 . ..

例子

import requests
from bs4 import BeautifulSoup

data = []

# Make a request
page = requests.get('https://www.projekt-gutenberg.org/keller/heinrich/hein101.html')
soup = BeautifulSoup(page.content, 'html.parser')

data.append({
    'title': soup.title,
    'chapter': soup.h2.get_text(),
    'text': ' '.join([p.get_text(strip=True) for p in soup.select('body p')[2:]])
    }
)

data