本攻略将介绍如何使用Python爬取本站电子书信息并将其存储到数据库中。我们将使用requests库和BeautifulSoup库爬取网页数据,并使用sqlite3库将数据存储到SQLite数据库中。
爬取数据
我们可以使用Python的requests库和BeautifulSoup库爬取本站电子书信息。以下是一个示例代码,用于爬取电子书信息:
import requests
from bs4 import BeautifulSoup
url = 'https://www.example.com/books'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
books = soup.find_all('div', {'class': 'book'})
data = []
for book in books:
title = book.find('h2').text.strip()
author = book.find('p', {'class': 'author'}).text.strip()
price = book.find('p', {'class': 'price'}).text.strip()
data.append({'title': title, 'author': author, 'price': price})
在上面的代码中,我们使用requests库发送HTTP请求,并使用BeautifulSoup库解析HTML响应。我们使用find_all方法获取所有电子书,并遍历每个电子书。我们使用find方法获取标题、作者和价格的数据,并将数据添加到data列表中。
存储数据
我们可以使用Python的sqlite3库将电子书信息存储到SQLite数据库中。以下是一个示例代码,用于存储电子书信息:
import sqlite3
conn = sqlite3.connect('books.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS books
(id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
author TEXT,
price TEXT)''')
for book in data:
c.execute('''INSERT INTO books (title, author, price)
VALUES (?, ?, ?)''', (book['title'], book['author'], book['price']))
conn.commit()
conn.close()
在上面的代码中,我们使用sqlite3库连接到SQLite数据库,并使用execute方法创建books表格。我们使用for循环遍历data列表,并使用execute方法将每个电子书信息插入到books表格中。最后,我们使用commit方法提交更改,并使用close方法关闭数据库连接。
示例1:爬取本站电子书信息
以下是一个示例代码,用于爬取本站电子书信息:
import requests
from bs4 import BeautifulSoup
url = 'https://www.example.com/books'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
books = soup.find_all('div', {'class': 'book'})
data = []
for book in books:
title = book.find('h2').text.strip()
author = book.find('p', {'class': 'author'}).text.strip()
price = book.find('p', {'class': 'price'}).text.strip()
data.append({'title': title, 'author': author, 'price': price})
在上面的代码中,我们使用requests库发送HTTP请求,并使用BeautifulSoup库解析HTML响应。我们使用find_all方法获取所有电子书,并遍历每个电子书。我们使用find方法获取标题、作者和价格的数据,并将数据添加到data列表中。
示例2:将电子书信息存储到SQLite数据库中
以下是一个示例代码,用于将电子书信息存储到SQLite数据库中:
import sqlite3
conn = sqlite3.connect('books.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS books
(id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
author TEXT,
price TEXT)''')
for book in data:
c.execute('''INSERT INTO books (title, author, price)
VALUES (?, ?, ?)''', (book['title'], book['author'], book['price']))
conn.commit()
conn.close()
在上面的代码中,我们使用sqlite3库连接到SQLite数据库,并使用execute方法创建books表格。我们使用for循环遍历data列表,并使用execute方法将每个电子书信息插入到books表格中。最后,我们使用commit方法提交更改,并使用close方法关闭数据库连接。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬取本站电子书信息并入库的实现代码 - Python技术站