剪贴簿 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
将内容存储在 dicts
的 list
中并将其推送到 csv
或 pandas
或 . ..
例子
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
我是 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
将内容存储在 dicts
的 list
中并将其推送到 csv
或 pandas
或 . ..
例子
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