1. 简介
在当前的互联网时代,信息变得越来越丰富和庞大。而爬虫技术作为一种自动化抓取信息的方式,得到了广泛的应用。Python作为一门简单易学且功能强大的编程语言,成为了很多爬虫开发者的首选。本文将介绍如何使用Python编写爬虫并将获取的数据保存到MongoDB数据库中。
2. 准备工作
在开始编写爬虫之前,我们需要安装一些必要的库。
pip install requests
pip install pymongo
我们使用requests
库来发送HTTP请求并获取网页内容,使用pymongo
库来连接并操作MongoDB数据库。
3. 编写爬虫
3.1 发送HTTP请求
首先,我们需要先通过发送HTTP请求获取网页的内容。这里我们以爬取豆瓣电影Top250为例。
import requests
url = 'https://movie.douban.com/top250'
response = requests.get(url)
html = response.text
这段代码中,我们使用requests.get
函数发送了一个GET请求,将豆瓣电影Top250的网页内容保存在html
变量中。
这时,我们可以打印html
变量的内容,查看网页是否成功获取。
print(html)
接下来,我们可以使用Python的解析库对网页内容进行解析。这里我们使用BeautifulSoup
库来实现解析。
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
这里我们使用了html.parser
解析器来解析网页内容。如果网页使用了其他的解析器,可以根据实际情况进行选择。
3.2 提取数据
接下来,我们需要从解析后的网页中提取出我们需要的数据。在豆瓣电影Top250页面中,每部电影信息都被包含在一个class为item
的
soup.find_all
方法来找到所有的
movie_list = soup.find_all('div', class_='item')
接着,我们可以遍历每个
for movie in movie_list:
# 提取电影名称
title = movie.find('span', class_='title').get_text()
# 提取电影评分
rating = movie.find('span', class_='rating_num').get_text()
# 提取电影简介
intro = movie.find('span', class_='inq').get_text()
# 打印提取的电影信息
print('电影名称:', title)
print('评分:', rating)
print('简介:', intro)
print('---------------------')
以上代码中,我们使用find
方法从每个
get_text
方法获取其文本内容。
可以看到,我们已经可以从豆瓣电影Top250页面中提取到电影的相关信息了。
4. 保存到MongoDB
4.1 连接数据库
在将数据保存到数据库之前,我们需要先连接到MongoDB数据库。
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/')
db = client['movies']
这里我们使用pymongo
库的MongoClient
类来连接到本地MongoDB数据库,数据库名称为movies
,你可以根据需要修改数据库的名称。
4.2 插入数据
接下来,我们可以将提取的电影信息插入到数据库中。
for movie in movie_list:
title = movie.find('span', class_='title').get_text()
rating = movie.find('span', class_='rating_num').get_text()
intro = movie.find('span', class_='inq').get_text()
movie_doc = {
'title': title,
'rating': rating,
'intro': intro
}
db.movies.insert_one(movie_doc)
以上代码中,我们定义了一个movie_doc
字典来存储电影的相关信息,然后使用insert_one
方法将movie_doc
插入到movies
集合中。
现在,我们已经成功将提取的电影信息保存到了MongoDB数据库中。
5. 结语
本文介绍了如何使用Python编写爬虫并将获取的数据保存到MongoDB数据库中。通过学习本文,你可以了解到如何发送HTTP请求、解析网页内容、提取所需数据,并使用MongoDB存储数据。希望本文对你学习爬虫和MongoDB有所帮助。