读取douban_books.html文件,提取书籍如下信息:标题,作者,出版年份,出版社;并将其打印出来。(计6分) 使用sqlite3数据库工具,创建数据库book.db,在数据库中创建表格book。(计4分) 将提取出来的书籍信息,存入数据库表格book中,并将书籍信息打印出来。(计5分)
时间: 2024-03-15 19:45:40 浏览: 59
.net core 读取本地指定目录下的文件的实例代码
好的,我将分为三个部分来回答你的问题。
第一部分:读取HTML文件,提取书籍信息
推荐使用BeautifulSoup库来解析HTML文件,以下是代码示例:
```python
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')
# 查找所有的书籍信息
book_list = soup.find_all('div', class_='info')
# 遍历书籍信息,提取标题、作者、出版年份、出版社
for book in book_list:
# 提取标题
title = book.find('a').get_text().strip()
# 提取作者和出版信息
author_info = book.find('div', class_='pub').get_text().strip()
author, pub_info = author_info.split('/')
# 提取出版年份和出版社
pub_year, publisher = pub_info.split()
# 打印书籍信息
print('书名:', title)
print('作者:', author)
print('出版年份:', pub_year)
print('出版社:', publisher)
```
第二部分:创建数据库表格
推荐使用sqlite3库来创建数据库和表格,以下是代码示例:
```python
import sqlite3
# 连接数据库
conn = sqlite3.connect('book.db')
# 创建表格
conn.execute('''
CREATE TABLE book (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
author TEXT,
pub_year TEXT,
publisher TEXT
)
''')
# 关闭连接
conn.close()
```
第三部分:将书籍信息存入数据库表格中并打印
以下是代码示例:
```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')
# 查找所有的书籍信息
book_list = soup.find_all('div', class_='info')
# 连接数据库
conn = sqlite3.connect('book.db')
# 将书籍信息存入数据库表格中
for book in book_list:
# 提取书籍信息
title = book.find('a').get_text().strip()
author_info = book.find('div', class_='pub').get_text().strip()
author, pub_info = author_info.split('/')
pub_year, publisher = pub_info.split()
# 存入数据库
conn.execute('''
INSERT INTO book (title, author, pub_year, publisher)
VALUES (?, ?, ?, ?)
''', (title, author, pub_year, publisher))
# 提交更改并关闭连接
conn.commit()
conn.close()
# 打印书籍信息
conn = sqlite3.connect('book.db')
cursor = conn.execute('SELECT * FROM book')
for row in cursor:
print('书名:', row[1])
print('作者:', row[2])
print('出版年份:', row[3])
print('出版社:', row[4])
print()
conn.close()
```
以上就是完整的代码实现,希望能对你有所帮助!
阅读全文