使用函数爬取蔚蓝书店上的数据,采集的内容有图书封面、书名、ISBN、作者、价格、出版日期、出版社等,要求有数据爬取、存储、展示过程,数据存储在MongoDB中,每个模块都使用函数实现
时间: 2024-06-09 15:07:03 浏览: 51
好的,我可以帮你完成这个任务。首先,我们需要安装pymongo和beautifulsoup4这两个库。
```python
!pip install pymongo
!pip install beautifulsoup4
```
然后,我们可以编写一个函数来获取蔚蓝书店上的图书信息。
```python
import requests
from bs4 import BeautifulSoup
def get_book_info(url):
"""
获取蔚蓝书店上的图书信息并返回一个字典
"""
# 发送请求并解析页面
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 获取图书信息
book_info = {}
book_info['cover_img'] = soup.find('div', class_='book-cover').img['src']
book_info['title'] = soup.find('h1', class_='book-title').text.strip()
book_info['isbn'] = soup.find('span', itemprop='isbn').text.strip().replace('-', '')
book_info['author'] = soup.find('span', itemprop='author').text.strip()
book_info['price'] = float(soup.find('span', itemprop='price').text.strip())
book_info['publish_date'] = soup.find('span', itemprop='datePublished').text.strip()
book_info['publisher'] = soup.find('span', itemprop='publisher').text.strip()
return book_info
```
接下来,我们可以编写一个函数来将获取到的图书信息存储到MongoDB中。
```python
from pymongo import MongoClient
def save_book_info(book_info):
"""
将图书信息保存到MongoDB中
"""
client = MongoClient()
db = client['bookstore']
collection = db['books']
collection.insert_one(book_info)
client.close()
```
最后,我们可以编写一个函数来展示MongoDB中存储的图书信息。
```python
def show_book_info():
"""
展示MongoDB中存储的图书信息
"""
client = MongoClient()
db = client['bookstore']
collection = db['books']
for book_info in collection.find():
print(book_info)
client.close()
```
现在,我们可以把这些函数组合起来来完成整个任务。
```python
url = 'https://www.wlbook.com/product/9787115545938'
# 获取图书信息
book_info = get_book_info(url)
# 保存图书信息到MongoDB
save_book_info(book_info)
# 展示MongoDB中存储的图书信息
show_book_info()
```
这样,我们就完成了从蔚蓝书店上爬取图书信息并保存到MongoDB中的任务。
阅读全文