犯罪庭审案件分析

  • 通过爬取山东庭审公开网(tszb.sdcourt.gov.cn)案件信息,将山东省各级法院受理刑事案件进行展示。
  • 案件时间:2018/6/22——2020/1/17
  • 共计案件1852件

所有图片点击可查看大图

案件类型排名前40:

案件类型排名前10:

  • 交通方面是当下犯罪最高的案件,一年内有342件案件是危险驾驶罪
  • 盗窃罪紧跟其后,有148件案件
  • 诈骗罪也是高发生率案件
案件类型排名前5:


此5种类型案件是山东省所有法院受理最多的案件

发生率较低案件:


提取了1年内仅发生一次的案件,以上犯罪名目在山东省发生概率最小

所有案件类型词云:


词云是统计了高频率案件

各地区受理案件数量:


由图可知,临沂市各级人民法院受理的案件数量是山东省最多。

各案件具体分布:

  • 部分基层人民法院案件归档于中级人民法院
    注:地区受理案件不一定为当地案件,数据仅作象征性排序显示
全部案件名称:






以上是山东省规定时间内受理的所有案件类型

代码:

import requests
from lxml import etree
import re,time
import pandas as pd
import csv
import numpy as npurl='http://tszb.sdcourt.gov.cn:81/findHomePageContents.action'
header={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}
url_list=[]#所有网页#获取当前页面的所有网页
#通过分析,下一页不是通过URL的变化,而是携带data访问数据,所以为访问第二页数据我们,我们要携带data
def down_url():try:for n in range(1,100):data={'start': '{}'.format(n),'limit': '16','contentsearch.tcase.casetype': '1','contentsearch.tcase.casetype': '1','contentsearch.ttrial.begindatetime': '','contentsearch.ttrial.enddatetime': '','contentsearch.ttrial.clerk': '','contentsearch.tcase.party': '','contentsearch.tcase.casecode': ''}res=requests.post(url,headers=header,data=data).texthref=re.findall('<a  target="_blank" href=(.*)class=',res)for i in range(len(href)):new_url='http://tszb.sdcourt.gov.cn:81/'+href[i].replace('"','')data =[[new_url]]with open('F:/Code/python/folder/url.csv', 'a',newline='') as f:w = csv.writer(f)w.writerows(data) #time.sleep(0.7)print('成功获取第{}的页面所有网址'.format(n))print('全部完成-------------------')except:print('{}下载失败'.format(n))#获取-时间,类型,地点
def get_text():for i in range(len(url_list)):res=requests.get(url_list[i],headers=header).textplace=re.findall('<span class="boriui_wenzi">法院:</span><span class="bord" title="(.*?)"',res)[0]time=re.findall('<span class="boriui_wenzi">开庭时间:</span><span class="bord" title="(.*?)"',res)[0]thing_type=re.findall('                                          title="(.*?)">',res)[0]data=[[place,time,thing_type]]print('{}{}{}'.format(place,time,thing_type))with open('F:/Code/python/folder/thing.csv', 'a',newline='') as f:w = csv.writer(f)w.writerows(data)#time.sleep(0.7)#处理网址,将网址添加到列表中
def check():url_csv=pd.read_csv('F:/Code/python/url.csv',usecols=[0],header=None)url_csv=np.array(url_csv)for i in range(1,3168,2):url_list.append(url_csv[i][0])

不知道为何xpath无法匹配到正确信息,而是一个[],只好改换正则匹配。
step2:

'''获取数据'''
import pandas as pd
import numpy as np
#地点
data_place=pd.read_csv('thing.csv',usecols=[0],header=None,encoding='GBK')
#时间
data_time=pd.read_csv('thing.csv',usecols=[1],header=None,encoding='GBK')
#类型
data_type=pd.read_csv('thing.csv',usecols=[2],header=None,encoding='GBK')
'''统计次数函数'''
import collections
def statistics(arg):dic = collections.Counter(arg)return dic
#将pandas获取的数据转换为列表
a=np.array(data_place).reshape(-1,)
b=np.array(data_time).reshape(-1,)
c=np.array(data_type).reshape(-1,)
#将时间和地点进行清洗
list_time=[]
list_place=[]
for i in b:list_time.append(i[:10])#时间
for n in a:list_place.append(n[:2])#地点
'''统计案件类型'''
case_type=statistics(c)
case_place=statistics(list_place)
case_time=statistics(list_time)
#元组转换
all_time = case_time.most_common(len(case_time))
all_type = case_type.most_common(len(case_type))
all_place = case_place.most_common(len(case_place))
'''取前50个'''
top_50 = case_type.most_common(50)
top50_case_name=[]
top50_case_num=[]
for i in top_50:top50_case_name.append(i[0])top50_case_num.append(i[1])
#地点
list_place_name=[]
list_place_num=[]
for i in all_place:if i[0]=='开庭':continueelse:list_place_name.append(i[0])list_place_num.append(i[1])
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.commons.utils import JsCode
from pyecharts.charts import Lin
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.charts import Pie,Grid
from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType#柱状图
bar = (Bar(init_opts=opts.InitOpts(width='900px',height='500px')).add_xaxis(top50_case_name[:10]).add_yaxis("案件类型",top50_case_num[:10]).set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-45)),title_opts=opts.TitleOpts(title="山东省", subtitle="2018.6.22-2020.1.17"))
)
bar.render('1.html')#饼状图
def pie_base():c = (Pie(init_opts=opts.InitOpts(width='1000px',height='900px')).add("",[list(z) for z in zip(top50_case_name[:40],top50_case_num[:40])],center=["60%", "50%"]).set_global_opts(title_opts=opts.TitleOpts(title="山东省详情")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")).set_global_opts(legend_opts=opts.LegendOpts(is_show=False),))return c
pie_base().render('3.html')#词云
words = case_type.most_common(len(case_type))
def wordcloud_base() -> WordCloud:c = (WordCloud().add("", words).set_global_opts(title_opts=opts.TitleOpts(title="类型词云")))return c
wordcloud_base().render('4.html')#地图
def map_guangdong() -> Map:c = (Map()#这里不在统计各市具体数据而是简单排序粗略比较.add("2018-2020", [['临沂市',100],['聊城市',80],['莱芜市',70],['淄博市',65],['东营市',75],['济南市',2],['青岛市',50],['滨州市',20],['枣庄市',9],['潍坊市',1]], "山东").set_global_opts(title_opts=opts.TitleOpts(title="案件分布图"),visualmap_opts=opts.VisualMapOpts(),))return c
map_guangdong().render('6.html')#树图
from pyecharts.charts import Page, Tree
def tree_base() -> Tree:data = [{"children": list_all_type[160:218],"name": "所有类型"}]c = (Tree(init_opts=opts.InitOpts(width='700px',height='900px')).add("", data).set_global_opts(title_opts=opts.TitleOpts(title="Tree")))return c
tree_base().render('7.html')from pyecharts.charts import Graph, Page#关系图
def graph_base() -> Graph:nodes = [{"name": top50_case_name[0], "symbolSize": 5},{"name": top50_case_name[1], "symbolSize": 4},{"name": top50_case_name[2], "symbolSize": 3},{"name": top50_case_name[3], "symbolSize": 2},{"name": top50_case_name[4], "symbolSize": 1},     ]links = []for i in nodes:for j in nodes:links.append({"source": i.get("name"), "target": j.get("name")})c = (Graph().add("", nodes, links, repulsion=8000).set_global_opts(title_opts=opts.TitleOpts(title="top5")))return c
graph_base().render('10.html')#漏斗图
from pyecharts.charts import Funnel, Page
def funnel_base() -> Funnel:c = (Funnel(init_opts=opts.InitOpts(width='1000px',height='900px')).add("商品", [list(z) for z in zip(list_place_name, list_place_num)]))return c
funnel_base().render('12.html')

数据可视化(二):犯罪案件分析相关推荐

  1. 宝藏级BI数据可视化功能|图表联动分析

    在浏览其他人的BI数据可视化报表时,经常会发现这样的一个现象,点一下上一张数据可视化图表中的某个门店,下一张图表将立即针对该门店展开数据可视化分析.这是什么效果?怎么实现?BI软件中还有多少宝藏级BI ...

  2. python爬虫豆瓣读书top250+数据清洗+数据库+Java后端开发+Echarts数据可视化(二)

    之前的博客已经写了python爬取豆瓣读书top250的相关信息,接下来继续看如何清洗数据. 如果有没看懂的或是不了解上一部分说的是什么内容的,请看https://blog.csdn.net/qq_4 ...

  3. python对三国演义,水浒传,红楼梦人物关系与出场频率进行文本分析,数据可视化,词云分析

    python对文本进行分析和数据可视化,主要运用到了jieba,worldcloudmatplotlib,nxwworkx,pandas库,其他库在代码中给出. 1.首先准备好这三本名著 2.准备好停 ...

  4. ECharts数据可视化(二)

    本人学习视频为黑马程序员,视频连接为:黑马程序员 Echarts-介绍 ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器 ...

  5. Python数据分析-数据可视化(二)

    欢迎大家访问个人博客:https://jmxgodlz.xyz 文章目录 前言 Matplotlib 折线图格式调整 标签 线条颜色 线条形状 折点样式 线条透明度 前言 看到有些论文插图十分简洁美观 ...

  6. 数据可视化(三):Python就业分析

    前言 Python作为当下流行的一门语言,凭借其简单的语法和丰富的库而赢得天下. 本文所谈 Python优缺点 Python就业 结论 一.Python优缺点 优点 在搜索引擎上搜索即可获得许多答案, ...

  7. 抗击肺炎:新冠肺炎疫情数据可视化及疫情预测分析

    疫情当前,共克时艰. 在新型冠状病毒感染的肺炎疫情牵动社会人心的关键时刻,本文将利用数据分析.数据挖掘.机器学习相关方法,围绕疫情态势展示.疫情走势预测进行分析,挖掘复杂异构多源数据之间的关联关系,以 ...

  8. 数据可视化(一):邹城房价分析

    数据来自:http://www.zcfcw.cn/ 用到的库: requests lxml time numpy pyecharts 对邹城2019年在售房价数据可视化 总计爬取了2200条房产售卖信 ...

  9. 数据可视化分析之新技能——魔数图

    数据可视化分析之新技能--魔数图 大家在使用数据可视化工具进行数据设计的时候,有没有遇到过这些设计场景:部门人员的履历细信息.工厂各个产线的生产状态和生产信息.公司各个部门的KPI信息--这些数据都有 ...

最新文章

  1. Linux阶段总结shell脚本
  2. linux -- at命令
  3. 计算机软件无形资产机械工具,考前秘籍,无形资产的定义及确认
  4. 欢迎大家讨论一个关于界面显示的问题!!
  5. pandas string
  6. SAP自学指南:案例公司的需求分析
  7. 设计模式之创建型单例模式
  8. 作业1-3 求1+2!+3!+...+20!的和
  9. Linux高性能网络:协程系列01-前言
  10. Android Multimedia框架总结(二十八)NuPlayer到OMX过程
  11. 【渝粤教育】电大中专职业生涯规划作业 题库
  12. HBuilder的app自动更新
  13. 周志华《机器学习》课后习题(第六章):支持向量机
  14. 账号通过邮箱找回密码功能设计
  15. python怎么根据度分布生成网络_python度分布图
  16. 对JavaScript中 this 关键词的理解
  17. 一步一步从原理跟我学邮件收取及发送 7.读取一行命令的实现
  18. 《MySQL入门学习》(p61~p62)
  19. 2019圣诞节 — 徒步看风景
  20. 东原罗韶颖:城市深耕中的社区商业逻辑

热门文章

  1. 局域网内Windows系统直连访问服务器Centos系统软件realvnc配置教程
  2. UMP系统功能 读写分离
  3. java schema校验_Json Schema 校验json,java代码示例
  4. J-Scope V6.11m使用小结
  5. 英特尔结盟40公司抢滩家庭娱乐叫板思科
  6. sjtu oj 1034 二哥的金链
  7. 2022-2027年(新版)中国学前教育行业发展态势及前景趋势预测报告
  8. 从声学智能到智能助手,谁能成为中国版的Alexa?
  9. 深度学习基础系列(十一)| Keras中图像增强技术详解
  10. 华为交换机打开光口命令_华为交换机配置基础命令