在python中爬取书名、作者、出版社、评分、单价 将上面这5个字段存储到数据库中 要求提交python代码截图和数据库最终查询截图
时间: 2024-10-14 15:02:43 浏览: 16
Python中的图书管理系统使用Django源代码.zip
在Python中,我们通常会使用一些库如BeautifulSoup和requests来抓取网页信息,然后使用SQLAlchemy或pymysql等ORM工具将数据存入数据库。这里是一个简化版的例子,展示如何完成这个任务,不过请注意,由于实际网络抓取可能会遇到反爬策略、动态加载内容等问题,需要根据实际情况调整。
首先,确保安装了必要的库:
```bash
pip install requests beautifulsoup4 pymysql sqlalchemy
```
然后编写Python代码,假设目标网站的数据结构已知:
```python
import requests
from bs4 import BeautifulSoup
import sqlite3
from sqlalchemy import create_engine, Column, Integer, String, Float
# 创建连接并创建表
engine = create_engine('sqlite:///book_info.db')
Base = declarative_base()
class Book(Base):
__tablename__ = 'books'
id = Column(Integer, primary_key=True)
title = Column(String)
author = Column(String)
publisher = Column(String)
rating = Column(Float)
price = Column(Float)
Base.metadata.create_all(engine)
def get_book_data(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取示例数据,实际需要根据网站HTML结构调整
data = {
'title': soup.find('div', class_='title').text,
'author': soup.find('span', class_='author').text,
'publisher': soup.find('div', class_='publisher').text,
'rating': float(soup.find('span', class_='rating').text),
'price': float(soup.find('span', class_='price').text),
}
return data
# 获取并保存数据
def save_to_db(book_data):
with engine.connect() as conn:
session = Session(bind=conn)
new_book = Book(title=book_data['title'], author=book_data['author'],
publisher=book_data['publisher'], rating=book_data['rating'],
price=book_data['price'])
session.add(new_book)
session.commit()
url = 'https://example.com/books' # 替换为你想要抓取的书籍详情页面URL
book_data = get_book_data(url)
save_to_db(book_data)
```
现在,数据应该已经被保存到`book_info.db`数据库中。如果你需要查看数据,可以执行如下查询:
```sql
SELECT * FROM books;
```
阅读全文