Python 爬虫是一种自动化程序,可以模拟用户浏览网页来获取数据,而 MongoDB 是一个开源的非关系型数据库。下面是实现 Python 爬虫数据存到 MongoDB 的完整攻略:
准备工作
- 安装 Python:在 Python 官方网站下载并安装 Python,安装好之后需要在系统环境变量 Path 中将 Python 安装路径添加进去。
- 安装 pymongo 库:在命令行中使用命令“pip install pymongo”安装 pymongo 库。
- 安装 requests 和 BeautifulSoup 库:在命令行中使用命令“pip install requests beautifulsoup4”安装 requests 和 BeautifulSoup 库。
- 安装 MongoDB:在 MongoDB 官方网站下载并安装 MongoDB,安装好之后需要在系统环境变量 Path 中将 MongoDB 安装路径添加进去。
- 创建 MongoDB 数据库:使用 MongoDB 的命令行工具(mongo.exe),输入命令“use database_name”创建一个数据库。其中,database_name 为你自己定义的数据库名称。
实现步骤
- 导入 pymongo 库和 requests 库。
import pymongo
import requests
- 创建 MongoClient 对象,连接 MongoDB 数据库。
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['database_name']
- 创建一个集合(或表格)并插入一些数据。
col = db['collection_name']
data = {'name': 'John', 'age': 25}
col.insert_one(data)
- 利用 requests 库发送 GET 请求,获取要爬取的网页数据。
url = 'https://www.example.com/'
res = requests.get(url)
- 使用 BeautifulSoup 库解析网页数据,并获取所需数据。
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text, 'html.parser')
title = soup.find('h1', {'class': 'title'}).text
content = soup.find('div', {'class': 'content'}).text
- 将所需数据存储到 MongoDB 数据库中。
data = {'title': title, 'content': content}
col.insert_one(data)
完成以上步骤后,爬虫数据就成功地存储到了 MongoDB 数据库中。
下面是两个示例说明,每个示例都是爬取某个网站的文章并将所需数据存储到 MongoDB 数据库中。
示例一
爬取《Python 中文文档》网站上的第一篇文章,并将文章的标题、作者和正文存储到 MongoDB 数据库中。
import pymongo
import requests
from bs4 import BeautifulSoup
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['website']
col = db['articles']
url = 'https://docs.python.org/zh-cn/3/tutorial/index.html'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
title = soup.find('h1', {'class': 'page-title'}).text
author = soup.find('span', {'class': 'authors'}).text
content = soup.find('div', {'class': 'document'}).text
data = {'title': title, 'author': author, 'content': content}
col.insert_one(data)
示例二
爬取豆瓣电影 Top250 页面上的电影信息,并将每部电影的名称、评分和导演存储到 MongoDB 数据库中。
import pymongo
import requests
from bs4 import BeautifulSoup
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['douban']
col = db['movies']
url = 'https://movie.douban.com/top250'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
movies = soup.find_all('div', {'class': 'info'})
for movie in movies:
name = movie.find('span', {'class': 'title'}).text
rating = movie.find('span', {'class': 'rating_num'}).text
director = movie.find('div', {'class': 'bd'}).p.text.split('\n')[1].strip()
data = {'name': name, 'rating': rating, 'director': director}
col.insert_one(data)
以上就是 Python 实现爬虫数据存到 MongoDB 的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现爬虫数据存到 MongoDB - Python技术站