-3

我是 python 新手,我正在寻找一种方法来用漂亮的汤提取现有的开放源代码书籍,这些书籍可以在 gutenberg-de 上找到,比如这本 我需要使用它们进行进一步分析和文本挖掘。

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

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,保留元数据作者、标题、年份和章节。有任何想法吗?

4

1 回答 1

0

怎么了?

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

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

建议如果您将所有urls内容循环存储在 a listof 中dicts并将其推送到csvorpandas或 ...

例子

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
于 2021-01-26T10:32:08.867 回答