【2020/2/6】寒假自学——学习进度报告13

  开学的日子越来越捉摸不定了,唉。


  今天主要是把北京市政百姓信件分析实战这个作业做了,因为之前一直摸鱼的关系,今天一天做了太多东西(还没做完)。

  最首先是爬取数据,我在找到了读取列表的api,所以我几乎把爬取数据、清洗数据、挖掘数据全给跳过了。。(放心,之后我还是要做一遍,因为还有一些功能没完成以及另一个大作业)。

  下面是爬取的python程序,希望给看我博客的同学一些启发。

import json
import requests
import csv, codecs
from fake_useragent import UserAgent

agent = UserAgent()

url = "http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.mailList.biz.ext"
requests = requests.Session()

data = {
    "PageCond/begin": 0,
    "PageCond/length": 100,
    "PageCond/isCount": 'true'
}
response = requests.post(url, data, headers={"user-agent": agent.Safari})
result = response.json()

csvfile = codecs.open('letter_title.csv', 'w', 'utf_8_sig')
writer = csv.writer(csvfile, delimiter=',', quoting=csv.QUOTE_ALL)
flag = True
if flag:
    keys = list(result['mailList'][0].keys())
    writer.writerow(keys)
    flag = False

while True:
    response = requests.post(url, data, headers={"user-agent": agent.Safari})
    result = response.json()
    data["PageCond/begin"] += 100
    print(result['PageCond'])
    for line in result['mailList']:
        writer.writerow(list(line.values()))
    if result['PageCond']['isLast']:
        print("结束爬取")
        break
csvfile.close()

  通过直接读取北京首都之窗网站的api我直接下载到了所有几乎完全适合我用来做作业的数据,大致如下。

   之后就是暂时数据的网站编写。

  这次我尝试了Mybatis的mybatis-generator来自动代码生成、自动生成实体,直接就可以连接数据库了。

  首先介绍下Mybatis。MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来。这是一个能自动生成SQL语句的映射引擎,能相当得简化数据库方面的工作,毕竟我实在不想对着一个空虚的ResultSet使劲查找然后一个个自己手动一个个装到java实体里面去(或者编一个自动装填工具类,但说实话挺麻烦,而且很憨)。

  具体如何使用mybatis-generator可以参考mybatis三剑客之mybatis-generator,但不如官方文档,看官方文档可以少走很多弯路。

  这次我使用的是MyBatis3DynamicSql,可以自动生成动态的SQL语句以及一些简单DAO层。

  首先是项目结构。

  页面设计修改了一个网上的bootstrap4的网页模板。好久没摸bootstrap简直陌生。。

   总体就这样了。

原文地址:https://www.cnblogs.com/limitCM/p/12271368.html