python使用mongodb爬取网页数据
时间: 2023-07-30 15:05:01 浏览: 133
使用Python与MongoDB交互,可以使用pymongo库进行安装。首先,使用pip install pymongo命令安装pymongo库。\[1\]接下来,可以使用以下代码对接Scrapy和MongoDB进行数据爬取和存储:
```python
from itemadapter import ItemAdapter
import pymongo
class MongoDBPipelines:
def __init__(self, conn, database):
self.conn = conn
self.database = database
@classmethod
def from_crawler(cls, crawler):
return cls(
conn=crawler.settings.get('MONGODB_CONNECTION_STRING'),
database=crawler.settings.get('MONGODB_DATABASE')
)
def open_spider(self, spider):
# 创建连接
self.client = pymongo.MongoClient(self.conn)
# 连接数据库
self.db = self.client\[self.database\]
def process_item(self, item, spider):
# 集合名称
# name = 'text' # 默认item类名
name = item.__class__.__name__
self.db\[name\].insert_one(dict(item))
return item
def close_spider(self, spider):
# 关闭连接
self.client.close()
```
以上代码是一个Scrapy的管道文件,用于将爬取到的数据存储到MongoDB中。在Scrapy的配置文件中,可以设置MONGODB_CONNECTION_STRING和MONGODB_DATABASE参数,分别表示MongoDB的连接字符串和数据库名称。\[2\]
另外,如果需要查询MongoDB中的数据,可以使用pymongo库提供的find()方法。以下是一个查询示例:
```python
import pymongo
# 创建连接
conn = pymongo.MongoClient()
# 查询数据
res = conn\['data'\]\['demo1'\].find()
for i in res:
print(i)
```
以上代码创建了与MongoDB的连接,并使用find()方法查询了名为demo1的集合中的数据。\[3\]
#### 引用[.reference_title]
- *1* *3* [Python爬虫之MongoDB](https://blog.csdn.net/m0_63636799/article/details/130344646)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Python爬虫编程9——MongoDB](https://blog.csdn.net/qq_52914337/article/details/123440537)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文