python爬虫数据保存到mongoDB的实例方法

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有所帮助。