用python爬取豆瓣读书网的封面照片存储到mongodb中
时间: 2023-07-15 22:12:47 浏览: 93
Python爬取豆瓣小组内的图片源码.zip
好的,这里提供一个简单的Python爬虫示例,可以爬取豆瓣读书网站上指定标签下的图书封面,并将其存储到MongoDB中。在运行代码前,需要安装pymongo和beautifulsoup4两个Python库。
```python
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
# 标签页链接
url = "https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4"
# MongoDB数据库连接配置
client = MongoClient()
db = client['douban']
collection = db['books']
# 请求标签页
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
# 获取图书列表
books = soup.find_all('li', class_='subject-item')
# 遍历图书列表,爬取封面照片并存储到MongoDB中
for book in books:
# 获取封面链接和图书标题
img_url = book.find('img')['src']
title = book.find('h2').a.text.strip()
# 下载封面图片
img_data = requests.get(img_url).content
# 存储到MongoDB中
collection.insert_one({
'title': title,
'image': img_data
})
# 关闭数据库连接
client.close()
```
在上述代码中,我们首先定义了一个指定标签的豆瓣读书网页链接,以及MongoDB数据库的连接配置。然后,我们使用requests库发送请求并使用BeautifulSoup库解析响应内容,获取包含图书信息的HTML元素列表。接下来,我们遍历图书列表,找到封面图片的链接和图书标题,并使用requests库下载封面图片。最后,我们将图书标题和封面图片数据存储到MongoDB中。
需要注意的是,上述示例代码只是一个简单的爬虫示例,为了遵循豆瓣网站的规定,我们应该在爬虫代码中设置适当的请求头信息,以及适当的时间间隔和异常处理机制,避免对豆瓣网站的服务器造成不必要的负担。
阅读全文