下面是Python使用MongoDB保存爬取豆瓣电影数据的完整攻略。
1. 安装MongoDB
在开始之前,需要先安装MongoDB数据库,具体步骤可参考MongoDB官方文档:https://docs.mongodb.com/manual/administration/install-community/
2. 安装Python库
接下来需要安装Python库pymongo和beautifulsoup4。pymongo是Python操作MongoDB的库,beautifulsoup4是Python解析HTML和XML的库。
pip install pymongo
pip install beautifulsoup4
3. 编写爬虫代码
我们可以使用requests和BeautifulSoup4库来爬取豆瓣电影的数据。以下是示例代码:
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/top250'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'
}
def get_movie_data(url):
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
movies = soup.find_all('div', class_='item')
for movie in movies:
name = movie.find('span', class_='title').text
rating = movie.find('span', class_='rating_num').text
year = movie.find('span', class_='inq').text.strip().replace('\'', '')
data = {
'name': name,
'rating': rating,
'year': year
}
yield data
此处我们用到request库去请求网页,用BeautifulSoup提取电影名、评分、年份等信息,用yield来定义生成器,不断地返回每一部电影的数据。
4. 连接MongoDB数据库
使用pymongo连接MongoDB数据库,并将数据存入数据库。
import pymongo
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['douban']
collection = db['movies']
for data in get_movie_data(url):
collection.insert_one(data)
以上代码中,我们定义了MongoDB数据库的名称和集合名称,使用insert_one方法将数据写入集合中。
示例1: 查询所有豆瓣电影数据
可以使用以下代码查询所有豆瓣电影的数据。
for data in collection.find():
print(data)
示例2:查询评分大于8.5的电影数据
可以用以下代码查询评分大于8.5的电影数据。
for data in collection.find({'rating': {'$gt': '8.5'}}):
print(data)
在这段代码中,我们使用了find方法和查询条件{'rating': {'$gt': '8.5'}},意为查询评分大于8.5的电影数据。
以上就是使用Python爬虫及MongoDB保存豆瓣电影数据的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python使用mongodb保存爬取豆瓣电影的数据过程解析 - Python技术站