前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据分析考科目三到底哪里容易被挂

大数据分析考科目三到底哪里容易被挂

作者头像
Python知识大全
发布2020-02-13 14:52:25
4190
发布2020-02-13 14:52:25
举报
文章被收录于专栏:Python 知识大全Python 知识大全

阅读本文需要3分钟

01

起因

就在上周五, 也就是5月24号, 也就是本狗的阳历生日的这天, 本狗考了科目三, 结果是:“唉”, 没想到过了。用一句小时候经常听的话来讲这次的成绩就是——“一根油条, 俩个鸡蛋”。厉害吧!!!

不过相反, 也有人挂了, 垂头丧气。于是,出于好奇的我,爬取了若干数据, 看看大家的科目三到底是哪个项目最致命 , 以及分布的地区。

02

经过

1.首先老样子, 爬取数据

需要的模块:

代码语言:javascript
复制
import random
import requests
import time
from lxml import etree
from urllib.parse import urljoin
import csv

构造每页的url:

代码语言:javascript
复制
data_list = []
def url_():
    url = 'https://bbs.pcauto.com.cn/forum-22487-{}.html'
    for i in range(2, 10):
        new_url = url.format(i)
        parse_url(new_url)

构造每个帖子详情的url:

代码语言:javascript
复制
def parse_url(url):
    baseurl = 'https:'
    response = requests.get(url, headers=headers)
    text = response.text
    html = etree.HTML(text)
    tbodys = html.xpath('//table[@class="data_table"]//tbody')[1:]
    for tbody in tbodys:
        user_urls = tbody.xpath('.//span[@class="checkbox_title"]//a/@href')[0]
        new_user_urls = urljoin(baseurl, user_urls)
        parse_data(new_user_urls)
        time.sleep(random.randint(1, 1))

爬取数据:

代码语言:javascript
复制
代码语言:javascript
复制
def parse_data(url):
    global cities
    data = {}
    response = requests.get(url, headers=headers)
    text = response.text
    html = etree.HTML(text)
    questions = html.xpath('//h1[@class="yh"]/i/text()')[0]
    data['question'] = questions
    try:
        cities = ''.join(html.xpath('//div[contains(@class, "psot_wrap_first")]//div[@class="user_info"]/ul//li//a[@class="dblue"]//text()')).split()[1]
    except Exception:
        pass
    data['city'] = cities
    print(data)
    data_list.append(data)
    csv_()
代码语言:javascript
复制

保存入库:

代码语言:javascript
复制
def csv_():
    headers = [ 'question', 'city']
    with open('question.csv', 'w', encoding='gbk', newline='')as fb:
        writer = csv.DictWriter(fb, headers)
        writer.writeheader()
        writer.writerows(data_list)

数据采集就完毕了!!!

2.接下来进行数据可视化

词云:

“紧张”, “靠边”, “转弯”, “技巧”, “教练”等,都是考生关注的!!!

代码:

代码语言:javascript
复制
import jieba
import wordcloud
import matplotlib.pyplot as plt

f = open('question.csv', 'r', encoding='utf-8')
t = f.read()
f.close()

lis = jieba.lcut(t)
txt = " ".join(lis)

w = wordcloud.WordCloud( width=1000, font_path='C:\Windows\Fonts\simfang.ttf', height=700)
w.generate("  ".join(jieba.lcut(txt))).to_file('cloud111.png')

plt.imshow(w)
plt.axis("off")
plt.show()

地区分布:

主要通过提取City这个字段。Python中的地图可视化主要通过Basemap模块,这个模块需要从国外网站下载地图信息,使用起来非常的不便。百度的ECharts在前端使用的比较多,虽然社区里提供了pyecharts项目,可我注意到因为政策的改变,目前Echarts不再支持导出地图的功能,所以地图的定制方面目前依然是一个问题。

主流的技术方案是配置全国各省市的JSON数据,这里使用的是BDP个人版,这是一个零编程的方案,我们通过Python导出一个CSV文件,然后将其上传到BDP中,通过简单拖拽就可以制作可视化地图,简直不能再简单。

考生主要集中在广东省, 河南省和河北省。

03

结果

其实科目三并不难呀, 前提是要好好练习!!!“熟能生巧”还是硬道理啊!!!

获取源码, 后台回复 【科三】

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python 知识大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
灰盒安全测试
腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档