精华内容
下载资源
问答
  • 数据爬取可视化分析

    千次阅读 2021-01-06 21:57:09
    数据分析3.1读取文件3.2对在01/22/2020 12:00:00的时间的中国境内有感染者和无感染者的省或者地区进行数据处理和可视化3.3对在01/22/2020 12:00:00的时间的中国境内有感染者的各个省或者地区进行数据处理和可视化3.4...

    一、数据爬取

    1.python简介

    1. Python的创始人为荷兰人吉多·范罗苏姆 (Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python’s Flying Circus)。

    2. Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。

    3. Python缺点,其一是速度慢:和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会- -行-行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。其二是无法加密:如果要发布你的 Python程序,实际上就是发布源代码,这-点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows.上常见的xx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。

    4. Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护、开源、高层语言、可移植、面向对象、可扩展、可嵌入、丰富的库,并且被大量用户所欢迎的、用途广泛的语言。

    2.什么是网路爬虫

    网络爬虫,又称网页蜘蛛(webspider),是一个功能强大的能够自动提取网
    页信息的程序,它模仿浏览器访问网络资源,从而获取用户需要的信息,它可以为搜索引擎从万维网上下载网页信息,因此也是搜索引擎的重要组成部分。
    根据爬取的对象、使用的结构及技术,爬虫可分为:

    1. 通用型爬虫
      该爬虫又称为全网爬虫,主要用在搜索引擎,从初始的URL到全网页面,但需要的存储容量大,速度要求快,工作性能强大。.
    2. 聚焦型爬虫
      该爬虫专注某一方面,只搜索事先定义的关键信息。
    3. 增量型爬虫
      每隔一段时间更新,重新爬取,更新数据库。

    怎么来用python爬虫,这里可以用python强大的丰富的标准库及第三方库来完成。这是爬虫的核心部分。尤其是对网页的解析,可使用正则表达式、BeautifulSoup、 lxml 来解析网页,三种方法各有千秋,使用时可根据用户的熟练程度和需要选择-种适合的解析方法。

    3.网页解析

    1. BeautifulSoup
    Bs4数据解析的原理:
    1、实例化一个BeautifulSoup对象。并且将页面源码数据加载到该对象中
    	-1.将本地的html文档中的数据加载到该对象中
    		htmlPath = 'text.html .
    		fp=open( htmlPath, 'r' ,encoding='utf-8')
    		#将本地的html文档中的数据加载到该对象中
    		soup=BeautifulSoup(fp,'1xm1')
    	-2.将互联网上获取的页面源码加载到该对象中
    		page_ text=response. text
    		soup=BeautifulSoup(page_ text,' 1xm1')
    
    2、通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取
    	-1.find()方法
    		-soup.a返回a标签第-次出现的内容
    		-soup.find('div')返回div标签第一次出现的内容
    		# 属性定位返回到某一个标签
    		soup.find('div',class_='song' )
    		-soup.find_ all('a')返回符合要求的所有标签(列表)
    	
    	-2.select()方法
    		-soup.select('.某种选择器(id,class,标签,选择器) ') (列表)
    		-层级选择器:(列表)>”大于号表示一个标签
    		-soup.select('.tang > ul > li > a')[1]”
    		空格表示多个连接标签
    		-soup. select('.tanga')[1]
    		
    	-3.获取标签之间的文本数据:
    		-text/get_ text(): 只可以获取该标签下所有的文本内容
    		-string:只可以获取该标签下直系的文本内容
    		-soup.a.text/string/get_ text( )
    		
    	-4.获取标签中的属性值:
    		-soup.a['href']
    

    Beautiful Soup提供一些简单的、 python 式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式, 这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为妒灵活地提供不同的解析策略或强劲的速度。

    1. etree
    xpath解析原理:
    1、实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中。
    	-1.将本地的html文档中的源码数据加载到etree对象中:
    		htmlPath = 'text.html 
    		etree. parse(htmlPath)
    	-2.可以将从互联网上获取的源码数据加载到该对象中
    		page_ text=response.text
    		tree=etree.HTML('page_ text')
    		xpath(-xpath表达式)
    
    2、调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获。
    	-1.xpath()方法
    		-tree.xpath('/html/body/div') (列表)
    		-定位到某个类
    		-“div[@/class=”类名”]-2.层级选择器:(列表)//”双斜杠表示间接的子孙标签
    		-tree.xpath('//div[@class="song"]/p[3]')/”单斜杠表示表示直接的子标签
    		-tree .xpath('/html/body/div[@class="song"]/p[3]')
    	-3.获取标签之间的文本数据:
    		-text/text():只可以获取该标签下所有的文本内容
    		-tree.xpath( '//div[@class="tang"]//li[5]/a/text()')[0]
    		-string:只可以获取该标签下直系的文本内容
    		-tree.xpath( '//div[@class="tang"]//li[5]/a/string()')[0]
    	-4.获取标签中的属性值:
    		-/@”来声明属性后面在加属性名 (/@src或者/@href)
    		-tree . xpath(' / /div[@class="song"]/ img/@src')[0]
    

    etree.HTML()可以用来解析字符串格式的HTML文档对象,将传进去的字符串转变成_ Element对象。 作为_ Element对象,可以方便的使用getparent()、 remove()、 xpath()方法。如果想通过xpath获取html源码中的内容,就要先将html源码转换成_Element对象, 然后再使用xpath()方法进行解析

    4.数据爬取流程

    对任何一个网页进行数据爬取的流程基本上是一样。

    1. 开发环境安装
    (1)从win的cmd命令下载
    	pip install lxml
    	pip install bs4
    	pip install requests
    	pip csv
    (2)从开发工具PyCharm设置下载
    2.模块导入
    需要导入的模块如下:
    import requests
    from lxml import etree
    from bs4 import BeautifulSoup
    import re
    Import os
    import csv
    3.指定url
    	给出要获取的网页的网站地址url
    4.数据请求
    	对指定的url可以使用get()、post()方法进行请求。
    	Get()请求使用较多对于那些没有对输入数据发请求的;
    	post()请求用于对要隐蔽性的用户输入信息的。
    5.数据获取
    	对数据的获取有三种:分别是text、json、content.
    	text获取通过调用响应对象的text属性,返回响应对象中存储的字符串形式的响应数据(页面源码数据);
    	json获取返回是0BI。
    	content获取对象一般都是图片类型的,返回的是响应对象中存储的二进制形式的响应数据。
    6.数据解析
    	使用lxml、bs4、正则表达式、来解析要获取信息的html
    	对获取的html进行分析,然后对直接需要获取的信息的html字段进行解析,一直解析到直接需要的信息文本或者链接属性值。然后在对获取的url进行发起请求、数据获取、数据解析、数据存储,循环这个操作就获取到信息
    7.数据存储
    	将获取的信息可以储存起来,可以是以列表、数组、字典、集合、txt、html、csv、数据库、img等等形式存放
    

    示例:我们对一个网站来实例化爬取一个,对搜狐体育新闻的NBA的所有新闻信息进行爬取,这里代码是自己写的(该网站是一个动态的需要懒加载的网站信息,毕竟是一个新闻网站,信息都是实时更新的)

    #导入模块
    import requests
    import os
    from lxml import etree
    from selenium import webdriver
    from lxml import etree
    from time import sleep
    import urllib3
    urllib3.disable_warnings()
    # from requests.packages.urllib3.exceptions import InsecureRequestWarning
    from bs4 import BeautifulSoup
    driver = webdriver.Chrome(executable_path='../pc/chromedriver.exe')
    #信息保存
    list_URL_1=[]
    #NBA的所有队的信息
    list_URL_2=[]
    list_NMAE_2=[]
    
    #数据爬取
    if __name__ == '__main__':
    	name_FILE='../搜狐体育新闻NBA/File/'
    	# 创建信息文件夹
    	if not os.path.exists(name_FILE):
    		os.mkdir(name_FILE)
    	url='https://sports.sohu.com/s/nba?spm=smpc.fb-sports-home.top-subnav.15.1606024293835fpr1dOb'
    	headers = {
    		'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36'
    	}
    	page_text = requests.get(url=url, headers=headers).text
    	tree_1 = etree.HTML(page_text)
    
    	#首页主要信息
    	list1=tree_1.xpath('//div[@class="sports-head-line"]/ul/li')
    	for li in  list1:
    		url=li.xpath('./a/@href')[0]
    		name=li.xpath('./a/text()')[0]
    		print(url,name)
    
    		# 主要的url
    		list_URL_1.append(url)
    	#删除https://m.sohu.com/subject/321765 的信息
    	list_URL_1.pop(1)
    	print(list_URL_1)
    	print(len(list_URL_1))
    	#//*[@id="mp-editor"]
    	for url in list_URL_1:
    		#爬取文本信息
    		page_text = requests.get(url=url, headers=headers).text
    		tree = etree.HTML(page_text)
    		t=tree.xpath('//*[@id="mp-editor"]/p//text()')
    		print(t)
    		file_n=t[0]
    		#删除后两行的'返回搜狐,查看更多'和 '责任编辑:'的信息
    		t.pop(-1)
    		t.pop(-1)
    		t='\n'.join(t)+'\n'+'\n'
    		#print(t)
    		#创建首页主要信息文件夹
    		name_file = name_FILE + '首页主要信息/'
    		if not os.path.exists(name_file):
    			os.mkdir(name_file)
    		not_File_name = ['/', "*", '"', '?', '<', '>', ':', '|']
    		# 创建首页主要信息的详情页文件夹
    		for x in not_File_name:
    			file_n = "".join(file_n[4:].split(x))
    
    		name_file_1 = name_file + file_n
    		if not os.path.exists(name_file_1):
    			os.mkdir(name_file_1)
    		#存储文本信息
    		with open(name_file_1+'/'+file_n[4:]+'.txt', 'w', encoding='utf-8') as fp:
    			fp.write(t)
    		print("文件保存成功")
    		#解析要爬取图片
    		img_src= tree.xpath('//*[@id="mp-editor"]/p/img/@src')
    		print('图片的url',img_src)
    		# 创建图片存放的文件夹
    		name_img=name_file_1+'/img/'
    		if not os.path.exists(name_img):
    			os.mkdir(name_img)
    		i=0
    		for li_url_img in img_src:
    			i = i + 1
    			#解析图片内容
    			page_text = requests.get(url=li_url_img, headers=headers, verify=False).content
    			# 生成图片名称
    			img_name = str(i)+'.jpg'
    			imgPath = name_img + img_name
    			#将图片存储到文件夹
    			with open(imgPath, 'wb') as fp:
    				fp.write(page_text)
    				print(img_name, "下载完成!!!!")
    
    
    	#首页所有的队的信息
    	# 创建首页主要信息文件夹
    	name_file2 = name_FILE + 'NBA所有球队的信息/'
    	if not os.path.exists(name_file2):
    		os.mkdir(name_file2)
    
    	list2=tree_1.xpath('//div[@class="nav-list"]/ul/li')
    	for li in list2:
    		li_url2='https://sports.sohu.com'+ li.xpath('./a/@href')[0]
    		li_name2=li.xpath('./a/text()')[0]
    		#输出队名和url
    		print(li_url2,li_name2)
    		#列表存放所有队的url和name
    		list_URL_2.append(li_url2)
    		list_NMAE_2.append(li_name2)
    
    	print(list_URL_2)
    	"""
    	由于NBA的队有三十个队左右,
    	所有这里不爬取那么多信息,
    	只爬取部分队的信息
    	"""
    	#遍历爬取各个队的信息(1个队)
    	for i in range(1):
    		#要爬取的队的url和name
    		print(list_URL_2[i],list_NMAE_2[i])
    		#创建每个队的文件夹
    		name_file2_1 = name_file2 + list_NMAE_2[i]+'/'
    		if not os.path.exists(name_file2_1):
    			os.mkdir(name_file2_1)
    
    		# driver = webdriver.Chrome(executable_path='pc/chromedriver.exe')
    		driver.get(url=list_URL_2[i])
    		#爬取四个界面的信息 20* 4
    		for i in range(1):
    			sleep(3)
    			target = driver.find_element_by_xpath(f'//*[@id="feed-wrapper"]/div[2]')
    			driver.execute_script("arguments[0].scrollIntoView();", target)
    		sleep(3)
    		# 解析球队的每个队的详情页的信息
    		page_text = driver.page_source
    		# print(page_text)
    		tree = etree.HTML(page_text)
    		a2 = tree.xpath('//div[@class="nba-feed clear theme_nbablue_border-color"]/div[2]/div[2]/div[1]/div')
    		print(len(a2))
    		#队里面的所有信息的url和name
    		#1.文本+图片
    		list_URL_2_1 = []
    		list_NAME_2_1 = []
    		# 2.全是图片
    		list_URL_2_2= []
    		list_NAME_2_2= []
            #遍历爬取每条信息的数据
    		for li in a2:
    			li_url = li.xpath('./div[1]/h3/a/@href | ./div[2]/h3/a/@href ')[0]
    			li_name = li.xpath('./div[1]/h3/a/text()| ./div[2]/h3/a/text()')[0]
    			print(li_name, li_url)
    			"""
    			这里有一部分是文本+图片组成的新闻
    			还有一部分全是图片组成的信息
    			"""
    			#1.文本+图片组成的信息
    			if '组图'not in li_name:
    				# 所有队的详细信息的url
    				list_URL_2_1.append(li_url)
    				list_NAME_2_1.append(li_name)
    				page_text = requests.get(url=li_url, headers=headers).text
    				# 爬取文本信息
    				tree = etree.HTML(page_text)
    				#//*[@id="mp-editor"]
    				t2=tree.xpath('//*[@id="mp-editor"]/p//text()')
    				#输出文本的列表信息
    				print(t2)
    				#获取文本信息的标题,如何去除里面?
    				file_n=li_name
    				print(file_n)
    				if '?' in file_n:
    					file_n = ' '.join(file_n.split("?"))
    				print(file_n)
    				#删除后两行的'返回搜狐,查看更多'和 '责任编辑:'的信息
    				t2.pop(-1)
    				t2.pop(-1)
    				t2='\n'.join(t2)+'\n'+'\n'
    				print(t2)
    				# 创建一条信息的详情页文件夹
    				name_file2_1_1 = name_file2_1 + file_n[4:]+'/'
    				if not os.path.exists(name_file2_1_1):
    					os.mkdir(name_file2_1_1)
    				#存储文本信息
    				with open(name_file2_1_1+file_n[4:]+'.txt', 'w', encoding='utf-8') as fp:
    					fp.write(t2)
    				print(file_n[4:],"文件保存成功")
    
    				#解析要爬取图片
    				img_src= tree.xpath('//*[@id="mp-editor"]/p/img/@src')
    				print('图片的url',img_src)
    				# 创建图片存放的文件夹
    				name_img=name_file2_1_1+'/img/'
    				if not os.path.exists(name_img):
    					os.mkdir(name_img)
    				i=0
    				for li_url_img in img_src:
    					i = i + 1
    					#解析图片内容
    					page_text = requests.get(url=li_url_img, headers=headers, verify=False).content
    					# 生成图片名称
    					img_name = str(i)+'.jpg'
    					imgPath = name_img + img_name
    					#将图片存储到文件夹
    					with open(imgPath, 'wb') as fp:
    						fp.write(page_text)
    						print(img_name, "下载完成!!!!")
    						
    			# 2.全是图片组成的信息
    			else :
    				# 所有队的详细信息的url
    				list_URL_2_2.append(li_url)
    				list_NAME_2_2.append(li_name)
    				page_text = requests.get(url=li_url, headers=headers,verify=False).text
    				# 爬取文本信息
    				tree = etree.HTML(page_text)
    				img_src = tree.xpath('//div[@class="picture hid"]/img/@src')
    				# 获取文本信息的标题,如何去除里面?
    				file_n = li_name
    				print(file_n)
    				if '?' in file_n:
    					file_n = ' '.join(file_n.split("?"))
    				print(file_n)
    				# 创建一条信息的详情页文件夹
    				name_file2_1_2 = name_file2_1 + file_n[4:] + '/'
    				if not os.path.exists(name_file2_1_2):
    					os.mkdir(name_file2_1_2)
    				# 创建图片存放的文件夹
    				name_img = name_file2_1_2 + '/img/'
    				if not os.path.exists(name_img):
    					os.mkdir(name_img)
    				i = 0
    				for li_url_img in img_src:
    					#这里获取的图片url不完整,需要拼接一下
    					li_url_img='https:'+li_url_img
    					i = i + 1
    					# 解析图片内容
    					# requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    					page_text = requests.get(url=li_url_img, headers=headers, verify=False).content
    					# 生成图片名称
    					img_name = str(i) + '.jpg'
    					imgPath = name_img + img_name
    					# 将图片存储到文件夹
    					with open(imgPath, 'wb') as fp:
    						fp.write(page_text)
    						print(img_name, "下载完成!!!!")
    
    
    
    
    

    二、数据清洗

    将上面的搜狐体育新闻的NBA的所有新闻信息进行爬取的数据进行清洗处理,为之后的数据分析做铺垫准备,当然了,如果数据处理不干净,可能会对后面的胡数据分析造成一定的影响。下面将对获取的数据进行数据格式统一处理、信息标题特殊字符处理。数据存储之前将数据清洗,也可以在存储之后将数据清洗,这里在数据存储之前进行清洗。

    1.数据格式统一处理

    由于NBA的球队比较多,大概有二十多个,这里就每个球队的信息进行爬取信息处理放到同一个对的文件夹中,然后将所有队信息放在一起。然而每个队有多条信息,每条信息里面包含了文本信息还有图片信息,所以需要将一条信息里面的文本单独处理存放在txt里面,图片统一放在文件夹中,然后再将该条信息的文本信息和文件夹中图片信息放在对应的队标题的文件夹中。

    • 创建文件夹存放信息
    name_FILE='../搜狐体育新闻NBA/File/'
    # 创建信息文件夹
    	if not os.path.exists(name_FILE):
    		os.mkdir(name_FILE)
    #首页所有的队的信息
    	name_file2 = name_FILE + 'NBA所有球队的信息/'
    	if not os.path.exists(name_file2):
    		os.mkdir(name_file2)
    #创建首页主要信息文件夹
    		name_file = name_FILE + '首页主要信息/'
    		if not os.path.exists(name_file):
    			os.mkdir(name_file)
    
    • 将文本信息存放在txt中,将图片信息存放在文件夹中,以jpg格式处理
    #存储文本信息
    	with open(name_file_1+'/'+file_n[4:]+'.txt', 'w', encoding='utf-8') as fp:
    		fp.write(t)
    	print("文件保存成功")
    #存储图片信息
    	# 生成图片名称
    	img_name = str(i)+'.jpg'
    	imgPath = name_img + img_name
    	#将图片存储到文件夹
    	with open(imgPath, 'wb') as fp:
    		fp.write(page_text)
    		print(img_name, "下载完成!!!!")
    

    2.信息标题特殊字符处理

    在获取一条信息的标题时,需要将该条标题来作为存放信息的文件夹的名称。如果文件标题出现一些特殊字符,会造成错误,因为文件夹的名称中不能出现一些特殊字符,例如:'/', "*", '"', '?', '<', '>', ':', '|'。因而在创建文件夹的时候,需要提前将标题提取处理,将里面特殊字符切割处理掉。

    #文件夹创建不允许存在字符
    	not_File_name = ['/', "*", '"', '?', '<', '>', ':', '|']
    #将文件名字去掉文件夹名称不能存在的一些字符
    	for x in not_File_name:
    		file_n = "".join(file_n[4:].split(x))
    # 创建首页主要信息的详情页文件夹
    	name_file_1 = name_file + file_n
    	if not os.path.exists(name_file_1):
    				os.mkdir(name_file_1)
    

    三、数据分析以及可视化

    1.什么是pandas和可视化

    pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

    可视化就是让一些数据为了更好的展现出来,让人可以以简单的肉眼方式直接看到结果,更直观、简洁、丰富以图像的形式表达出。这里就需要第三方的库matplotlib,matplotlib是一款命令式、较底层、可定制性强、图表资源丰富、简单易用、出版质量级别的python 2D绘图库。matplotlib可用于python脚本、python shell、jupyter notebook、web等。

    柱状图、点线图、直方图、饼图、堆积柱状图、填充直方图、直方散点图、面积图、趋势图、箱型图、小提琴图、数据地图、雷达图、漏斗图、嵌套饼图、各类三维图等等,不胜枚举都可以用matplotlib绘画出。

    2.数据文件的读取和写入

    • 文件读取
      data=pd.read_文件类型(‘读取文件路径’)

    示例:读取csv文件
    python #导入模块 import pandas as pd #读取文件 data=pd.read_csv('新建文本文档.csv')

    • 文件写入
      data.to_文件类型(‘保存文件路径’)
      示例:写入csv文件
      #导入模块
      import pandas as pd
      #写入文件
      data.to_csv('新建文本文档a.csv')
      

    3.数据分析

    接下来我们对csv的数据进行数据分析以及可视化处理。将本地的csv()来做处理部分数据如下:
    在这里插入图片描述

    3.1读取文件

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    #读取文件
    data = pd.read_csv(r'2019_nCoV_data.csv',encoding='utf-8',engine='python')
    # print(data)
    

    3.2对在01/22/2020 12:00:00的时间的中国境内有感染者和无感染者的省或者地区进行数据处理和可视化

    • 数据处理
    #对数据进行简单处理
    a=data.loc[:,['Date','Province/State','Country','Confirmed','Deaths','Recovered']]
    #获取是在01/22/2020 12:00:00的时间的中国境内有感染者的省或者地区
    b1=a[(a.Country=='China') & (a.Date=='01/22/2020 12:00:00') & (a.Confirmed>0)]
    print(b1)
    #获取有感染的省或者地区的数据量
    n1=np.array(b1.iloc[:,0:1]).size
    print(n1)
    #获取是在01/22/2020 12:00:00的时间的中国境内没有感染者的省或者地区
    b2=a[(a.Country=='China') & (a.Date=='01/22/2020 12:00:00') & (a.Confirmed==0.0)]
    print(b2)
    #获取没有感染的省或者地区的数据量
    n2=np.array(b2.iloc[:,0:1]).size
    print(n2)
    
    #饼状图
    # laberl是标签名称
    labels = '有感染者的地区或者省', '没有感染者的地区或者省'
    # sizes表示每个标签的个数
    sizes = [n1,n2]
    fig1, ax1 = plt.subplots()
    # autopct显示比例
    ax1.pie(sizes, autopct='%1.1f%%', labels=labels)
    # 解决汉字乱码问题 ,使用指定的汉字字体类型(此处为黑体)
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    #绘制标题
    plt.title('01/22/2020 12:00:00中国地区的有无感染者的地区或者省的占比')
    # 将图形显示出来
    plt.show()
    
    • 饼状图可视化
      在这里插入图片描述

    说明:从这个饼状图可以看出在2020年一月二号12:00:00时间,中国有四分之三的省或者地区感染了病毒,仅仅只有四分之一的省或者地区情况较好,没有人感染。由此可以该病毒在中国境内传播之迅速,让让人防不胜防。

    3.3对在01/22/2020 12:00:00的时间的中国境内有感染者的各个省或者地区进行数据处理和可视化

    • 数据处理
    
    #获取省和地区
    Province=b1['Province/State']
    #获取感染者的数量
    Confirmed=b1['Confirmed']
    
    # 首先将pandas读取的数据转化为array在转list
    Province_list = np.array(Province).tolist()
    print(Province_list)
    Confirmed_list = np.array(Confirmed).tolist()
    print(Confirmed_list)
    
    #######01/22/2020 12:00:00中国的有感染者的各个省和地区的数量占比信息
    #饼状图
    # # laberl是标签名称
    labels =Province_list
    # # sizes表示每个标签的个数
    sizes =Confirmed_list
    fig1, ax1 = plt.subplots()
    explode=[]
    for i in range(n1):
    	explode.append(0.5)
    # autopct显示比例
    ax1.pie(sizes,explode=explode, autopct='%1.1f%%', labels=labels)
    plt.title('01/22/2020 12:00:00中国的有感染者的各个省和地区的数量占比信息')#绘制标题
    # 将图形显示出来
    plt.show()
    
    
    • 可视化
      在这里插入图片描述
      说明:从这个饼状图可以看出在2020年一月二号12:00:00时间,中国有感染了病毒的省或者地区中湖北省是全国的重灾区。仅仅是一个湖北省就占了全国的八成的感染者,其他的各个地区有少量的感染者。解决湖北地区的感染者是非常重要的,由此需要其他轻灾区大量支援湖北地区摆脱病魔。

    3.4对在01/22/2020 12:00:00到02/04/2020 12:00:00的14天时间的全部地区的感染者、死亡人数、治愈人数和sno的数量进行数据处理和可视化

    • 数据处理

      # 解决汉字乱码问题 ,使用指定的汉字字体类型(此处为黑体)
      matplotlib.rcParams['font.sans-serif'] = ['SimHei']
      #布局
      plt.rcParams['figure.figsize']=(8,5)
      a=data.groupby(['Date']).sum().plot(kind='bar')
      print(a)
      #将x轴的对应时间旋转60度
      plt.xticks(rotation=60)
      #x轴和y轴说明以及设置
      plt.ylabel('人数 ', fontsize=15)
      plt.xlabel('时间', fontsize=15)
      plt.show()
      
      
    • 可视化
      ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210106211442357.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xqZjE5MDQwOQ==,size_16,color_FFFFFF,t_70

    说明:从这个直方图可以看出在2020年一月二十二号到二月四号的时间里,感染者数量一直在增加。

    3.5对在14天时间的中国地区和非中国地区的感染者、死亡人数、治愈人数的数量进行数据处理和可视化

    • 数据处理
    # 解决汉字乱码问题 ,使用指定的汉字字体类型(此处为黑体)
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    #布局
    plt.rcParams['figure.figsize']=(10,10)
    a=data.groupby([data.Country=='Mainland China']).sum().plot(kind='bar')
    print(a)
    #让x轴旋转0度
    plt.xticks(rotation=0)
    plt.ylabel('人数 ', fontsize=15)
    plt.xlabel('地区', fontsize=15)
    #显示图像
    plt.show()
    
    • 可视化
      在这里插入图片描述

    说明:从这个直方图可以看出在2020年一月二十二号到二月四号的时间里,中国地区感染者数量远远比非中国地区的感染者数量多,中国地区灾区较为严重很多。

    基本上需要的数据都已经获取。数据分析可以分析多种情况下的信息表现,这里就简单分析几个数据信息,当然了你也可以继续分析其他情况下的数据情况,这里就不过多介绍。

    展开全文
  • pandas & matplotlib 用于数据分析可视化 上一个任务通过requests、BeautifulSoup4两个功能强大、用法简洁的函数库已经获取到了楼盘名、地址和价格这些新房信息,并且保存为csv格式文件,csv文件可以用excel打开并...
  • scrapy爬虫抓取数据,grafana分析数据 结合Grafana分析武汉房价数据
  • python数据爬取及数据可视化分析

    千次阅读 多人点赞 2021-01-06 21:54:47
    目录电影网站数据分析可视化研究数据爬取环境配置问题反爬取处理(headers)数据获取数据分析影片出现次数年份分布电影类型的数据字段分析上映区间数据统计电影评分数据分析小结 数据爬取 环境配置问题 在进行数据...

    电影网站数据分析及可视化研究

    本博客是一篇集数据爬取,存储为excel表格,将数据可视化为一体的博文,数据爬取采用request等方法,数据可视化会使用图表进行展示,有改进的地方还请大家多多指教。

    数据爬取

    环境配置问题

    在进行数据爬取之前,需要进行一些导入
    在这里插入图片描述
    这些导入包括json库,requests方法等等,但是在进行导入的过程中根据计算机的差异可能会出现一些问题。我在进行安装requests的过程当中就遇到了一些问题。
    在这里插入图片描述
    在安装的过程当中,由于pip版本过低需要进行更新,故无法进行requests的安装。
    在这里插入图片描述
    但是命令提示符所给出的系统自动更新的方法却无法进行更新,那么就可以去找一个镜像源来进行安装,并且最好是国内的安装源,运行速度快,可使用清华或是豆瓣安装源进行尝试,安装成功结果如下。

    在这里插入图片描述

    反爬取处理(headers)

    在配置好环境后,就可以找到我们需要爬取的网站对其信息进行爬取,但需注意,若非静态页面,一般的动态页面会有一些反爬取的措施,那么我们应该怎么做才能够爬取到我们想要的信息呢,其实很简单。首先我们找到需要爬取的网页:
    在这里插入图片描述
    鼠标右键点击审查元素,找到network——Doc——当前网址——headers,往下滑到最下面就会看到一个叫User-Agent一栏,在爬取的时候进行调用即可
    在这里插入图片描述

    数据获取

    在这里插入图片描述获取例如影片名称列表,所在区域的影片简介,评分等等,将获取到的信息保存至csv文件中。存储示例如下:
    在这里插入图片描述

    数据分析

    影片出现次数年份分布

    进行库的导入和数据读取是每一个分析的先决条件。
    在这里插入图片描述
    分析数据,以柱状图显示
    在这里插入图片描述
    在这里插入图片描述

    电影类型的数据字段分析

    在这里插入图片描述
    在这里插入图片描述
    词云图分析
    在这里插入图片描述
    在这里插入图片描述

    上映区间数据统计

    在这里插入图片描述
    在这里插入图片描述

    电影评分数据分析

    在这里插入图片描述
    以饼状图显示:
    在这里插入图片描述

    小结

    对于数据可视化的学习还远不应止如此,如何将数据更为直观,更为简洁,更为层次分明地展现在大家眼前,这是值得考虑的问题,对于各种环境和工具的运用,如何能够做到更为熟练和精细,是自我提升所必需的。
    喜欢本博客的话记得点个赞,也记得关注一下博主哦!

    展开全文
  • 通过requests抓包方式爬取拉勾网深圳市的数据分析岗位信息,并利用pandas、pyecharts、jieba、WordCloud等工具,从多维度进行岗位数据可视化分析
  • 1、主要是使用django进行反爬虫处理; 2、文件较大,含有2021年1月份爬取的几百万条数据,详见db文件; 3、如需咨询可发邮至:darkfire3@163.com
  • 前几天一直在研究 Python 爬虫技术,只为从互联网上获取...2 数据可视化 3 模型预测数据 3.1 单变量线性回归 模型一:单变量线性回归模型 3.2 多变量线性回归 模型二:基于LinearRegression实现的多变量线性回归模型
  • 通过python爬去豆瓣网的数据,用大数据基础对数据进行清洗,然后对清洗的数据可视化,更直观的展示出来
  • 这次主要是爬了京东上一双鞋的相关评论:将数据保存到excel中并可视化展示相应的信息 主要的python代码如下: 文件1 #将excel中的数据进行读取分析 import openpyxl import matplotlib.pyplot as pit #数据统计用的...
  • #所涉及到的是requests和openpyxl数据的存储和数据的清洗以及统计然后就是matplotlib进行数据可视化#静态数据点击element中点击发现在html中,服务器已经渲染好的内容,直接发给浏览器,浏览器解释执行,#动态数据...

    #所涉及到的是requests和openpyxl数据的存储和数据的清洗以及统计然后就是matplotlib进行数据的可视化

    #静态数据点击element中点击发现在html中,服务器已经渲染好的内容,直接发给浏览器,浏览器解释执行,

    #动态数据:如果点击下一页。我们的地址栏(加后缀但是前面的地址栏没变也算)(也可以点击2和3页)没有发生任何变化说明是动态数据,说明我们的数据是后来被渲染到html中的。他的数据根本不在html中的。

    #动态查看network然后用的url是network里面的headers

    #安装第三方模块输入cmd之后pip install 加名字例如requests

    import requests

    import re

    import time

    import json

    import openpyxl #用于操作 excel文件的

    headers= {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}#创建头部信息

    def get_comments(productId,page):

    url= "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId={0}&score=0&sortType=5&page={1}&pageSize=10&isShadowSku=0&fold=1".format(productId,page)

    resp= requests.get(url, headers=headers)

    s=resp.text.replace('fetchJSON_comment98(','')#进行替换操作。获取到所需要的相应的json,也就是去掉前后没用的东西

    s=s.replace(');','')

    json_data=json.loads(s)#进行数据json转换returnjson_data

    #获取最大页数

    def get_max_page(productId):

    dis_data=get_comments(productId,0)#调用刚才写的函数进行向服务器的访问请求,获取字典数据return dis_data['maxPage']#获取他的最大页数。每一页都有最大页数

    #进行数据提取

    def get_info(productId):

    max_page=get_max_page(productId)

    lst=[]#用于存储提取到的商品数据for page in range(1,max_page+1):

    #获取没页的商品评论

    comments=get_comments(productId,page)

    comm_list=comments['comments']#根据comnents获取到评论的列表(每页有10条评论)

    #遍历评论列表,获取其中的相应的数据for item incomm_list:

    #每条评论分别是一字典。在继续通过key来获取值

    content=item['content']

    color=item['productColor']

    size=item['productSize']

    lst.append([content,color,size])#将每条评论添加到列表当中

    time.sleep(3)#防止被京东封ip进行一个时间延迟。防止访问次数太频繁

    save(lst)

    def save(lst):

    #把爬取到的数据进行存储,保存到excel中

    wk=openpyxl.Workbook()#用于创建工作簿对象

    sheet=wk.active #获取活动表(一个工作簿有三个表)

    #遍历列表将数据添加到excel中。列表中的一条数据在表中是一行

    biaotou='评论','颜色','大小'sheet.append(biaotou)for item inlst:

    sheet.append(item)

    #将excel保存到磁盘上

    wk.save('销售数据.xlsx')if __name__=='__main__':

    productId='66749071789'get_info(productId)

    print("ok")

    展开全文
  • 链家网房产数据爬虫与数据分析可视化 房子虽然买不起,但是看看应该可以,没事的时候打开看看,好好搬砖,为国接盘。 主要技术为 django + vue +mysql + requests 搬砖快乐 Stargazers over time
  • Day01 数据爬取可视化数据

    千次阅读 多人点赞 2020-04-01 13:51:32
    可视化,是一种利用计算机图形学和图像处理技术,将数据转换成图像在屏幕上显示出来,再进行交互处理的理论、方法和技术。 本次实践基于丁香园公开的统计数据,实现新冠疫情可视化,包括疫情地图、疫情增长趋势图、...

    可视化,是一种利用计算机图形学和图像处理技术,将数据转换成图像在屏幕上显示出来,再进行交互处理的理论、方法和技术。

    本次实践基于公开的统计数据,实现可视化,包括地图、增长趋势图、分布图等。

    步骤

    1. 通过爬虫获取数据
    2. 通过数据提取绘制图形

    一、爬去数据信息

    import json
    import re
    import requests
    import datetime
    
    #获取当天日期
    today = datetime.date.today().strftime('%Y%m%d')   
    
    def crawl_dxy_data():
        """
        爬取丁香园实时统计数据,保存到data目录下,以当前日期作为文件名,存JSON文件
        """
        response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia') #request.get()用于请求目标网站
        print(response.status_code)                                          # 打印状态码
    
    
        try:
            url_text = response.content.decode()                             #更推荐使用response.content.deocde()的方式获取响应的html页面
            #print(url_text)
            url_content = re.search(r'window.getAreaStat = (.*?)}]}catch',   #re.search():扫描字符串以查找正则表达式模式产生匹配项的第一个位置 ,然后返回相应的match对象。
                                    url_text, re.S)                          #在字符串a中,包含换行符\n,在这种情况下:如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始;
                                                                             #而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,在整体中进行匹配。
            texts = url_content.group()                                      #获取匹配正则表达式的整体结果
            content = texts.replace('window.getAreaStat = ', '').replace('}catch', '') #去除多余的字符
            json_data = json.loads(content)                                         
            with open(today + '.json', 'w', encoding='UTF-8') as f:
                json.dump(json_data, f, ensure_ascii=False)
        except:
            print('<Response [%s]>' % response.status_code)
    
    
    def crawl_statistics_data():
        """
        获取各个省份历史统计数据,保存到data目录下,存JSON文件
        """
        with open(today + '.json', 'r', encoding='UTF-8') as file:
            json_array = json.loads(file.read())
    
        statistics_data = {}
        for province in json_array:
            response = requests.get(province['statisticsData'])
            try:
                statistics_data[province['provinceShortName']] = json.loads(response.content.decode())['data']
            except:
                print('<Response [%s]> for url: [%s]' % (response.status_code, province['statisticsData']))
    
        with open("statistics_data.json", "w", encoding='UTF-8') as f:
            json.dump(statistics_data, f, ensure_ascii=False)
    
    
    if __name__ == '__main__':
        crawl_dxy_data()	#保存截止当天中国疫情数据
        crawl_statistics_data()		#保存截至当天每天的疫情数据
    

    上述代码我们已经爬取到了相应的数据信息,接下来我们就要对数据进行可视化了,而我们的可视化工具就是 pyecharts

    Echarts 是一个由百度开源的数据可视化工具,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。pyecharts api可以参考:https://pyecharts.org/#/zh-cn/chart_api

    使用 options 配置项,在 pyecharts 中,一切皆 Options。
    主要分为全局配置组件和系列配置组件。
    (1)系列配置项 set_series_opts(),可配置图元样式、文字样式、标签样式、点线样式等;
    (2)全局配置项 set_global_opts(),可配置标题、动画、坐标轴、图例等;

    先来认识下全局配置组件吧
    配置组件图

    #若是没有安装过pyecharts,可通过pip安装
    pip install pyecharts
    #建议使用清华源镜像安装
    !pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts
    

    二、绘制可视化图形

    2.1. 绘制疫情地图

    代码如下

    import json
    import datetime
    from pyecharts.charts import Map
    from pyecharts import options as opts
    
    # 读原始数据文件
    today = datetime.date.today().strftime('%Y%m%d') 
    datafile = today + '.json'
    with open(datafile, 'r', encoding='UTF-8') as file:
        json_array = json.loads(file.read())
    
    # 分析全国实时确诊数据:'confirmedCount'字段
    china_data = []
    for province in json_array:
        china_data.append((province['provinceShortName'], province['confirmedCount']))
    china_data = sorted(china_data, key=lambda x: x[1], reverse=True)                 #reverse=True,表示降序,反之升序
    
    print(china_data)
    # 全国疫情地图
    # 自定义的每一段的范围,以及每一段的特别的样式。
    #这里为确诊人数最大值,最小值,颜色
    pieces = [
        {'min': 10000, 'color': '#540d0d'},
        {'max': 9999, 'min': 1000, 'color': '#9c1414'},
        {'max': 999, 'min': 500, 'color': '#d92727'},
        {'max': 499, 'min': 100, 'color': '#ed3232'},
        {'max': 99, 'min': 10, 'color': '#f27777'},
        {'max': 9, 'min': 1, 'color': '#f7adad'},
        {'max': 0, 'color': '#f7e4e4'},
    ]
    
    #label为城市,counts为城市确诊人数
    labels = [data[0] for data in china_data]
    counts = [data[1] for data in china_data]
    
    m = Map()
    m.add("累计确诊", [list(z) for z in zip(labels, counts)], 'china')
    
    #系列配置项,可配置图元样式、文字样式、标签样式、点线样式等
    m.set_series_opts(label_opts=opts.LabelOpts(font_size=12),
                      is_show=False)
    #全局配置项,可配置标题、动画、坐标轴、图例等
    m.set_global_opts(title_opts=opts.TitleOpts(title='全国实时确诊数据',
                                                subtitle='数据来源:丁香园'),
                      legend_opts=opts.LegendOpts(is_show=False),
                      visualmap_opts=opts.VisualMapOpts(pieces=pieces,
                                                        is_piecewise=True,   #是否为分段型
                                                        is_show=True))       #是否显示视觉映射配置
    #render()会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件,也可以传入路径参数,如 m.render("mycharts.html")
    m.render(path='全国实时确诊数据.html')
    #运行完成可从目录中打开html文件进行可视化查看
    

    全国疫情地图如下:
    中国新冠疫情地图

    2.2. 绘制湖北省地图
    由于城市地区需要标准化,故需要下载相关文件pycharts_city.txt
    代码如下:

    import json
    import datetime
    from pyecharts.charts import Map
    from pyecharts import options as opts
    
    # 读原始数据文件
    today = datetime.date.today().strftime('%Y%m%d') 
    datafile = today + '.json'
    with open(datafile, 'r', encoding='UTF-8') as file:
        json_array = json.loads(file.read())
    
    # 分析湖北省实时确诊数据
    # 读入规范化的城市名称,用于规范化丁香园数据中的城市简称
    with open('pycharts_city.txt', 'r', encoding='UTF-8') as f:
        defined_cities = [line.strip() for line in f.readlines()]
    
    #规范化城市读取格式
    def format_city_name(name, defined_cities):
        for defined_city in defined_cities:
            if len((set(defined_city) & set(name))) == len(name):
                name = defined_city
                if name.endswith('市') or name.endswith('区') or name.endswith('县') or name.endswith('自治州'):
                    return name
                return name + '市'
        return None
    
    
    province_name = '湖北'
    for province in json_array:
        if province['provinceName'] == province_name or province['provinceShortName'] == province_name:
            json_array_province = province['cities']
            hubei_data = [(format_city_name(city['cityName'], defined_cities), city['confirmedCount']) for city in
                          json_array_province]
            hubei_data = sorted(hubei_data, key=lambda x: x[1], reverse=True)
    
            print(hubei_data)
    
    labels = [data[0] for data in hubei_data]
    counts = [data[1] for data in hubei_data]
    pieces = [
        {'min': 10000, 'color': '#540d0d'},
        {'max': 9999, 'min': 1000, 'color': '#9c1414'},
        {'max': 999, 'min': 500, 'color': '#d92727'},
        {'max': 499, 'min': 100, 'color': '#ed3232'},
        {'max': 99, 'min': 10, 'color': '#f27777'},
        {'max': 9, 'min': 1, 'color': '#f7adad'},
        {'max': 0, 'color': '#f7e4e4'},
    ]
    
    m = Map()
    m.add("累计确诊", [list(z) for z in zip(labels, counts)], '湖北')
    m.set_series_opts(label_opts=opts.LabelOpts(font_size=12),
                      is_show=False)
    m.set_global_opts(title_opts=opts.TitleOpts(title='湖北省实时确诊数据',
                                                subtitle='数据来源:丁香园'),
                      legend_opts=opts.LegendOpts(is_show=False),
                      visualmap_opts=opts.VisualMapOpts(pieces=pieces,
                                                        is_piecewise=True,
                                                        is_show=True))
    m.render(path='湖北省实时确诊数据.html')
    

    例图如下所示:
    湖北疫情图

    2.3. 绘制增长趋势图
    代码如下:

    import numpy as np
    import json
    from pyecharts.charts import Line
    from pyecharts import options as opts
    
    # 读原始数据文件
    datafile = 'statistics_data.json'
    with open(datafile, 'r', encoding='UTF-8') as file:
        json_dict = json.loads(file.read())
    
    # 获取日期列表
    dateId = [str(da['dateId'])[4:6] + '-' + str(da['dateId'])[6:8] for da in json_dict['湖北'] if
              da['dateId'] >= 20200201]
    
    # 分析各省份2月1日至今的新增确诊数据:'confirmedIncr'
    statistics__data = {}
    for province in json_dict:
        statistics__data[province] = []
        for da in json_dict[province]:
            if da['dateId'] >= 20200201:
                statistics__data[province].append(da['confirmedIncr'])
        #若当天该省数据没有更新,则默认为0
        if(len(statistics__data[province])!=len(dateId)):
            statistics__data[province].append(0)
    
    
    # 全国新增趋势
    all_statis = np.array([0] * len(dateId))
    for province in statistics__data:
        all_statis = all_statis + np.array(statistics__data[province])
    
    all_statis = all_statis.tolist()
    # 湖北新增趋势
    hubei_statis = statistics__data['湖北']
    # 湖北以外的新增趋势
    other_statis = [all_statis[i] - hubei_statis[i] for i in range(len(dateId))]
    
    line = Line()
    line.add_xaxis(dateId)
    line.add_yaxis("全国新增确诊病例",   #图例
                    all_statis,       #数据
                    is_smooth=True,   #是否平滑曲线
                   linestyle_opts=opts.LineStyleOpts(width=4, color='#B44038'),#线样式配置项
                   itemstyle_opts=opts.ItemStyleOpts(color='#B44038',          #图元样式配置项
                                                     border_color="#B44038",   #颜色
                                                     border_width=10))         #图元的大小
    line.add_yaxis("湖北新增确诊病例", hubei_statis, is_smooth=True,
                   linestyle_opts=opts.LineStyleOpts(width=2, color='#4E87ED'),
                   label_opts=opts.LabelOpts(position='bottom'),              #标签在折线的底部
                   itemstyle_opts=opts.ItemStyleOpts(color='#4E87ED',
                                                     border_color="#4E87ED",
                                                     border_width=3))
    line.add_yaxis("其他省份新增病例", other_statis, is_smooth=True,
                   linestyle_opts=opts.LineStyleOpts(width=2, color='#F1A846'),
                   label_opts=opts.LabelOpts(position='bottom'),              #标签在折线的底部
                   itemstyle_opts=opts.ItemStyleOpts(color='#F1A846',
                                                     border_color="#F1A846",
                                                     border_width=3))
    line.set_global_opts(title_opts=opts.TitleOpts(title="新增确诊病例", subtitle='数据来源:丁香园'),
                         yaxis_opts=opts.AxisOpts(max_=16000, min_=1, type_="log",    #坐标轴配置项
                                                  splitline_opts=opts.SplitLineOpts(is_show=True),#分割线配置项
                                                  axisline_opts=opts.AxisLineOpts(is_show=True)))#坐标轴刻度线配置项
    line.render(path='新增确诊趋势图.html')
    

    疫情增长趋势图如下:
    增长趋势图
    如果小伙伴们已经掌握了pyecharts的代码伙计,可以自己尝试着用数据绘制柱状图,饼图等拓展图形

    结束心得

    这次撰写主要用于日后复习,也分享一下我所学到的知识,paddle的第一门课学到的知识点还是很多的

    • 如何用python爬取我们需要用到的数据
    • 如何用pyechats库快速绘制可视化图形

    下一门课只要是利用百度的深度学习框架paddle用于手势识别,小小期待一下~

    展开全文
  • Python疫情数据爬取与可视化展示

    万次阅读 多人点赞 2021-03-19 22:16:26
    文章目录疫情数据爬取与可视化展示疫情数据抓取初步分析数据处理国内各省疫情数据提取国际疫情数据提取数据整合可视化展示国内疫情态势可视化国际疫情态势可视化国内疫情方寸间国际疫情方寸间参考链接 导入相关模块 ...
  • 众所周知,学习一门语言最首先的就是配置环境,在学习python时,首先配置的就是python的版本pip。python版本有2.x.x3.x.x的,两者互相不兼容,但有相互转化的工具。我这里用的是Python2.7版本。 安装pip时有常见...
  • 爬取疫情开始一个月数据和至今一个月的数据,将数据存储到csv文件中,使用d3进行可视化展示,展示包括动态散点图、柱状图、河流图,有动态效果,使用前请查看说明文档
  • Python爬虫之小说信息爬取与数据可视化分析

    千次阅读 多人点赞 2021-01-06 23:51:26
    数据写入数据库二、数据分析与可视化基于pandas库的分析基于matplotlib模块的分析三、作者遇到的一些问题的解决方法 作者有话说: 1、本文虽然是一篇技术性文章,但是分析的数据可以给喜欢看小说的人提供参考 2、...
  • 案例:Python爬取新冠肺炎实时数据及其可视化分析 作者:PyQuant 博客:https://blog.csdn.net/qq_33499889 慕课:https://mooc1-2.chaoxing.com/course/207443619.html 本案例适合作为大数据技术基础课程中数据爬取...
  • python爬虫,并将数据进行可视化分析数据可视化包含饼图、柱状图、漏斗图、词云、另附源代码和报告书。
  • 使用Python爬取腾讯新闻疫情数据,并使用pyecharts可视化,绘制国内增长人数地图、柱状图、折线图。 文章目录1.分析网页2.导入模块3.抓取数据4.提取数据并写入Excel5.国内各地区现有确诊人数地图6.国内各地区现有...
  • Python之数据爬取&数据可视化

    千次阅读 2020-09-24 09:05:00
    前言临近中秋,月饼的销量持续增长,然而不仅仅是中秋节,非旺季也有很多月饼爱好者在电商平台购买月饼。本文利用淘宝上的公开数据,应用 python 对月饼非旺季的销售状况进行分析,并对统计结...
  • 前程无忧岗位数据爬取+Tableau可视化分析

    千次阅读 热门讨论 2021-09-26 23:43:06
    二、数据获取 1、相关库的导入说明 2、构造自动翻页链接(获取二级链接) 3、信息获取文档写入 三、数据清洗 1、数据读取、去重、空值修复 2、“岗位名称”字段预处理 3、“工作地点”字段预处理 ...
  • python疫情数据爬取与可视化展示

    千次阅读 2020-08-18 15:13:37
    python疫情数据爬取与可视化展示 爬虫&正则 requests&Beautiful Soup requests爬取网页(练手) import requests url = 'http://wsjkw.sc.gov.cn/scwsjkw/gzbd/fyzt.shtml' #爬取网页的URL res = ...
  • 源码: from pyecharts import Bar import re import requests num=0 b=[] for i in range(1,11): ... headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0;... x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/...
  • Python系列爬虫之携程旅游景点数据爬取与可视化

    千次阅读 多人点赞 2021-04-13 08:00:12
    今天我们就用爬虫携程旅游景点数据爬取与可视化并做简单的数据可视化分析呗。让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: bs4模块; jieba模块; pyecharts模块; wordcloud模块; requests模块; ...
  • Python爬取知网论文信息,包含数据爬取、数据分析、数据可视化代码,直接输入关键词即可获取相关数据信息
  • 以下是通过爬取房天下各区域租金的数据数据保存于MongoDB),总数据量为 16971 。   统计结果 深圳房源分布:(按区划分)  其中福田南山的房源分布是最多的。 房租单价:(每月每平方米单价 – 平均数...
  • 小项目需求分析技术分析系统设计 ...词云可视化展示评论信息 技术分析 开发语言:python3 获取数据:requests + lxml +xpath + json 数据存储:mongodb 可视化:jieba + wordcloud + matplotlib 系统设计 ...
  • Python数据分析、数据挖掘程序设计(期末结课大作业、课程设计、毕业设计)基于python语言的生猪价格爬取可视化分析,Python大作业,数据分析与挖掘大作业。长文,多图预警,建议先收藏,后阅读。需要工程代码可直接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,270
精华内容 6,108
关键字:

数据爬取与可视化分析