• 【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简直陌生。。

       总体就这样了。

  • 相关阅读:
    设计模式-行为型模式,责任链模式(10)
    设计模式-结构型模式,代理模式(9)
    设计模式-结构型模式, mvc 模型视图控制器模式(8)
    设计模式-创建型模式,python享元模式 、python单例模式(7)
    设计模式-结构型模式,外观模式(6)
    设计模式- 结构型模式,装饰器模式(5)
    设计模式-结构型模式,适配器模式(4)
    设计模式-创建型模式,原型模式(3)
    设计模式- 创建型模式, 建造者模式(2)
    设计模式 -创建型模式 ,python工厂模式 抽象工厂模式(1)
  • 原文地址:https://www.cnblogs.com/limitCM/p/12271368.html
Copyright © 2020-2023  润新知