Python实现爬虫数据存到MongoDB
在当今的互联网时代,数据是无价的,而爬虫技术就是从互联网上获取数据的一种重要手段,Python作为一种强大的编程语言,其丰富的库和简洁的语法使得它成为编写爬虫的理想选择,而MongoDB则是一种非关系型数据库,它的灵活的数据模型和高性能使得它非常适合存储大量的结构化和非结构化数据,本文将介绍如何使用Python实现爬虫数据存到MongoDB。
1、Python爬虫基础
Python爬虫的基础是使用requests库来发送HTTP请求,获取网页的HTML内容,然后使用BeautifulSoup库来解析HTML,提取出我们需要的数据。
import requests from bs4 import BeautifulSoup response = requests.get('http://example.com') soup = BeautifulSoup(response.text, 'html.parser')
2、MongoDB基础
MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案,MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
3、安装pymongo库
pymongo是Python操作MongoDB的一个库,我们可以通过pip来安装它。
pip install pymongo
4、连接MongoDB
我们可以使用pymongo库来连接MongoDB。
from pymongo import MongoClient client = MongoClient('localhost', 27017) db = client['mydatabase'] collection = db['mycollection']
5、存储数据到MongoDB
我们可以使用insert_one方法来插入一条数据到MongoDB。
data = {'name': 'John', 'age': 30, 'city': 'New York'} collection.insert_one(data)
6、完整爬虫示例
下面是一个完整的爬虫示例,它会爬取一个网页的内容,然后将数据存储到MongoDB。
import requests from bs4 import BeautifulSoup from pymongo import MongoClient import time def crawl(): response = requests.get('http://example.com') soup = BeautifulSoup(response.text, 'html.parser') return soup.find_all('div', class_='content') def save_to_mongodb(data): client = MongoClient('localhost', 27017) db = client['mydatabase'] collection = db['mycollection'] for item in data: data = {'content': item.text} collection.insert_one(data) client.close() if __name__ == '__main__': while True: data = crawl() save_to_mongodb(data) time.sleep(60) 每分钟爬取一次数据
以上就是使用Python实现爬虫数据存到MongoDB的基本步骤,需要注意的是,爬虫可能会对网站造成压力,因此在使用时需要遵守网站的robots.txt规则,不要对网站造成过大的压力,爬虫也可能会违反一些法律和规定,因此在使用时需要谨慎。