💖🔥作者主页:计算机毕设IT宝
精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻Java实战项目
文章目录
一、项目介绍
随着风力能源的快速发展,风力发电场规模不断扩大,风力能源监控和管理成为了一个重要的问题。传统的风力能源监控系统通常采用独立的监控设备和管理系统,无法实现数据共享和统一管理,同时存在数据丢失和设备故障的风险。因此,开发一种基于Hadoop大数据技术的风力能源监控管理系统,具有非常重要的意义。
现有解决方案存在的问题主要包括数据存储和管理混乱、数据处理效率低下、数据安全性和可靠性无法保证等。此外,现有的监控系统通常不具备智能化和自动化管理功能,需要大量的人工干预和维护,导致管理成本高昂。因此,开发一种基于Hadoop大数据技术的风力能源监控管理系统,可以有效地解决这些问题,提高风力能源的管理效率和安全性。
本课题能够实现基于Hadoop大数据技术的风力能源监控管理系统,实现数据采集、存储、处理、分析和管理的智能化和自动化。通过分布式存储和计算技术,提高数据处理效率和处理能力,同时保证数据的安全性和可靠性。此外,本课题的研究还能够为风力能源行业提供一种新的管理思路和方法,推动风力能源行业的快速发展。因此,本课题的研究具有重要的理论和实践意义。
二、开发环境
- 大数据技术:Hadoop、Spark、Hive
- 开发技术:Python、Django框架、Vue、Echarts
- 软件工具:Pycharm、DataGrip、Anaconda、VM虚拟机
三、项目展示-基于Hadoop大数据的风力能源监控管理系统图片
四、代码展示
def test(cansu):
u=1
proxy = cansu
proxies = {
'http': 'http://' + proxy,
'https': 'https://' + proxy
# 'https':'https://'+proxy
}
# print(proxies)
print(proxy)
try:
response = requests.get('http://httpbin.org/get', timeout=5, proxies=proxies)
# print(response.text)
# print(response.status_code)
# print('成功%d个' % u, '状态码为:', response.status_code)
if response.status_code == 200:
print('成功%d个' % u, '状态码为:', response.status_code)
er = proxy + '\n'
with open('可用代理.txt', 'a+')as x:
x.write(er)
u += 1
except Exception as e:
print('出现错误:', e.args)
headers={
'User-Agent':'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
}
#爬取西刺代理
def xici(page):
u=time.time()
url = 'http://www.xicidaili.com/nn/' + str(page)
resonp = requests.get(url, headers=headers).text
# print(resonp)
repo = re.compile("(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,4}).*?(\d{2,6})", re.S).findall(resonp)
m = 1
for li in repo:
# 如果下面不加\n在写入的时候就是一行写满爬取到的IP和代理 加了 \n就会换行 写入
# 也可以看出元祖类型可以用下标
ip = li[0] + ':' + li[1] # + '\n'
test(ip)
print('耗时:',time.time()-u)
#爬取66代理网站
def liuliudaili(page):
'''
:param page: 页码数
:param tar: 这个是爬取哪个代理就传入哪个代理的方法
:return:
'''
for u in range(page):
url = 'http://www.66ip.cn/' + str(u) + '.html'
respon = requests.get(url, headers=headers).text
# print(respon)
rety = re.compile('(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,4}).*?(\d{1,6})', re.S).findall(respon)
# test=[]
u = 1
for i in rety:
ip = i[0] + ':' + i[1] # +'\n'
# test.append(ip)
test(ip)
#多线程通用爬取
def dxcty(tar,page):
'''
:param page:爬取的页面数
:return: 线程数
'''
tu=time.time()
ths=[]
for i in range(page):
th=Thread(target=tar,args=(i,))
th.start()
ths.append(th)
for u in ths:
u.join()
print('耗时:',time.time()-tu)
#多进程通用爬取
def djcty(tar,page):
el=time.time()
pool=Pool()
y=tar
for i in page:
pool.apply_async(y,(page,))
pool.close()
pool.join()
print('耗时:',time.time()-el)
iup=input('请输入对应的数字:')
if iup == '1':
print('此版块是爬取西刺代理 页面最多有3000页+ 但耗时很久 建议5页')
x=int(input('请输入要爬取的几页:'))
xici(x+1)
elif iup == '2':
print('此版块是爬取66代理 页面最多有1000页+ 但耗时很久 建议5页')
x = int(input('请输入要爬取的几页:'))
liuliudaili(x+1)
elif iup == '3':
print('此版块为多线程 需要传入爬取页面数和爬取代理的方法')
a=int(input('请输入要爬取的页面数:'))
b=input('请选择方法 1.西刺 2.66')
if b == '1':
dxcty(xici,a)
elif b == '2':
dxcty(liuliudaili,a)
elif iup == '4':
print('此版块为多进程 需要传入爬取页面数和爬取代理的方法')
a = int(input('请输入要爬取的页面数:'))
b = input('请选择方法 1.西刺 2.66')
if b == '1':
dxcty(xici,a)
elif b == '2':
dxcty(liuliudaili,a)
五、项目总结
本研究旨在开发一种基于Hadoop大数据技术的风力能源监控管理系统,以提高风力能源的管理效率和安全性。首先,我们通过对风力能源监控和管理系统的背景和意义进行深入分析,明确了本课题的必要性和重要性。接着,我们对现有解决方案存在的问题进行了详细剖析,进一步凸显了本课题的实用性。