Python数据抓取分析是非常常见的一个应用场景,而Python与MongoDB的配合也非常流行。今天,我们将为大家介绍一份Python数据抓取分析的示例代码,使用Python和MongoDB进行数据的采集和存储,供大家参考借鉴。
1. 安装MongoDB
首先,需要安装并启动MongoDB数据库。安装可以参考MongoDB官方文档。
2. 安装Python库
本示例使用到的Python库包括pymongo、beautifulsoup4和requests。使用pip进行安装,命令如下:
pip install pymongo beautifulsoup4 requests
3. 代码分析
进行数据抓取
代码首先进行数据的抓取。本示例中,采集了博客园推荐阅读列表,代码如下:
import requests
from bs4 import BeautifulSoup
url = 'https://www.cnblogs.com/'
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
content = soup.find('div', id='post_list')
result = []
for item in content.find_all('div', class_='post_item'):
title = item.find('a', class_='titlelnk').text.strip()
url = item.find('a', class_='titlelnk')['href']
summary = item.find('p').text.strip()
date = item.find('span', class_='post_item_foot').text.strip()
result.append({
'title': title,
'url': url,
'summary': summary,
'date': date
})
代码中,使用requests库进行了博客园首页的数据获取。接着,使用BeautifulSoup库对获取到的网页进行了解析,并选取了推荐阅读列表的“内容部分”进行分析。最后,将结果保存到result列表中。
将数据保存到MongoDB
接下来,我们使用pymongo将抓取到的数据存储到MongoDB数据库中。代码如下:
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client['test_db']
collection = db['blog']
for item in result:
collection.insert_one(item)
client.close()
上述代码首先定义了一个MongoDB客户端client,连接到默认主机localhost和默认端口27017。接着,获取了名为test_db的数据库,并获取其中名为blog的集合。最后,遍历之前存储结果的result列表,使用insert_one方法将结果依次插入到MongoDB集合blog中。
4. 示例
本示例抓取并存储了博客园推荐阅读列表中,每篇博客的标题、URL、摘要以及刊登日期。示例中使用了pymongo、beautifulsoup4和requests等库。
除了博客园推荐阅读列表之外,本示例还可以借鉴以下两个场景进行数据抓取和分析:
- 京东商品信息:借助requests和BeautifulSoup库,对京东商品页面进行解析,获取商品的名称、价格、评价等数据,再通过pymongo库将数据存储到MongoDB中。
- 招聘信息采集:借助requests和正则表达式库对招聘网站进行数据采集,将职位、公司、薪资等信息存储到MongoDB中,再通过数据分析的手段,分析行业招聘趋势,招聘需求排行等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python数据抓取分析的示例代码(python + mongodb) - Python技术站