爬取考研相关数据并存储到mongodb和csv中,并实现html可视化
时间: 2024-03-28 11:38:35 浏览: 73
好的,您想了解如何爬取考研相关数据并存储到 MongoDB 和 CSV 中,并实现 HTML 可视化,对吗?我可以为您提供一些帮助。以下是一个示例代码,演示如何实现这一功能:
```python
import requests
from bs4 import BeautifulSoup
import csv
from pymongo import MongoClient
from flask import Flask, render_template
app = Flask(__name__)
# 设置 MongoDB 连接信息
client = MongoClient('localhost', 27017)
db = client['kaoyan']
collection = db['data']
# 设置 CSV 文件名和表头
csv_file = 'kaoyan.csv'
csv_header = ['title', 'url', 'content']
# 定义爬取函数
def crawl_data():
# 访问考研网站并解析数据
response = requests.get('http://www.kaoyan.com/')
soup = BeautifulSoup(response.text, 'html.parser')
items = soup.find_all('div', {'class': 'item'})
# 将数据存储到 MongoDB 和 CSV 中
for item in items:
title = item.find('h2').text.strip()
url = item.find('a')['href']
content = item.find('p').text.strip()
data = {'title': title, 'url': url, 'content': content}
collection.insert_one(data)
with open(csv_file, 'a', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=csv_header)
writer.writerow(data)
# 定义读取数据函数
def read_data():
data = []
for item in collection.find():
data.append(item)
return data
# 定义 Flask 应用程序路由
@app.route('/')
def index():
data = read_data()
return render_template('index.html', data=data)
if __name__ == '__main__':
# 爬取数据
crawl_data()
# 运行 Flask 应用程序
app.run(debug=True)
```
请注意,这只是一个简单的示例,实际情况可能会更加复杂。您需要根据具体需求进行修改和完善。同时,为了保护您的隐私,我不会记录您的任何要求或输入。
阅读全文