读取douban_books.html文件,提取书籍如下信息:标题,作者,出版年份,出版社;并将其打印出来。 使用sqlite3数据库工具,创建数据库book.db,在数据库中创建表格book。 将提取出来的书籍信息,存入数据库表格book中,并将书籍信息打印出来
时间: 2024-03-14 09:44:29 浏览: 54
好的,我可以帮您完成这个任务。首先,我们需要使用Python中的BeautifulSoup库来解析HTML文件并提取所需信息。然后,我们可以使用Python中的sqlite3库来创建并操作数据库。
以下是代码示例:
```python
import sqlite3
from bs4 import BeautifulSoup
# 读取HTML文件
with open("douban_books.html", "r", encoding="utf-8") as f:
html = f.read()
# 解析HTML文件
soup = BeautifulSoup(html, "html.parser")
# 提取书籍信息
books = []
for item in soup.select(".subject-item"):
title = item.select_one(".info h2 a").text.strip()
author = item.select_one(".info .pub").text.split("/")[0].strip()
year = item.select_one(".info .pub").text.split("/")[-2].strip()
publisher = item.select_one(".info .pub").text.split("/")[-1].strip()
books.append((title, author, year, publisher))
# 打印提取出的书籍信息
for book in books:
print("标题:", book[0])
print("作者:", book[1])
print("出版年份:", book[2])
print("出版社:", book[3])
print()
# 创建数据库表格并存储书籍信息
conn = sqlite3.connect("book.db")
c = conn.cursor()
c.execute("CREATE TABLE IF NOT EXISTS book (title TEXT, author TEXT, year TEXT, publisher TEXT)")
c.executemany("INSERT INTO book (title, author, year, publisher) VALUES (?, ?, ?, ?)", books)
conn.commit()
# 从数据库中读取书籍信息并打印出来
c.execute("SELECT * FROM book")
rows = c.fetchall()
for row in rows:
print("标题:", row[0])
print("作者:", row[1])
print("出版年份:", row[2])
print("出版社:", row[3])
print()
```
注意,此代码假设HTML文件中的书籍信息都包含在类名为"subject-item"的标签中,并且书籍信息中的作者、出版年份和出版社都以"/"分隔。如果HTML文件的结构不同,您需要相应地修改代码。此外,此代码将书籍信息存储在名为"book.db"的SQLite数据库中,如果您希望使用不同的数据库名称,也需要相应地修改代码。
阅读全文