为了准备构建图书推荐系统的数据,可以编写⼀个爬⾍脚本来从在线图书商店或图书评价⽹站抓取图书的详细信息和⽤⼾评价。在这个⽰例中,展⽰如何使⽤Python的 requests 和BeautifulSoup 库抓取图书信息。
假设⽬标⽹站的图书⻚⾯有如下简化的HTML结构:
<div class="book">
<h2 class="title">图书标题</h2>
<p class="author">作者: 某作者</p>
<div class="rating">评分: 4.5</div>
<p class="review">⽤⼾评价: ⾮常好的⼀本书。</p>
</div>
示例:
import requests
from bs4 import BeautifulSoup
# 假设的图书详情⻚⾯URL
url = 'https://example.com/books'
# 发送GET请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
# 创建⼀个列表存储图书信息
books_info = []
# 查找所有图书信息的容器
for book in soup.find_all('div', class_='book'):
title = book.find('h2', class_='title').text
author = book.find('p', class_='author').text.replace('作者: ', '')
rating = book.find('div', class_='rating').text.replace('评分: ', '')
review = book.find('p', class_='review').text.replace('⽤⼾评价: ', '')
# 将图书信息添加到列表
books_info.append({'title': title, 'author': author, 'rating': rating,'review': review})
# 输出抓取的数据,实际应⽤中可以保存到数据库或⽂件中
for book in books_info:
print(book)
else:
print('请求失败,状态码:', response.status_code)
注意事项:
• 在实际应⽤中,需要根据⽬标⽹站的实际HTML结构调整选择器。
• 确保遵守⽬标⽹站的 robots.txt ⽂件规定和版权政策,不要对⽹站造成不必要的负担。
• 对于⼤规模数据抓取,考虑使⽤分布式爬⾍并合理安排抓取频率