如何用Python优雅的写毕业论文
前言
又到了我校一年一度的论文开题和中期检查时间,平时看上去忙碌却一个字都还没写的学生还是大有人在的,而我也就是其中一位~今天,我就来说说我是如何利用Python帮小姐姐们写论文的。 PS:不是代写,就是帮忙处理数据,建模,拒绝代写,从我做起。
数据获取很麻烦?
大家都知道,毕业论文大部分都是导师的科研项目,幸运的童鞋可能都有数据支撑了,拿来就用了。可是,接下来的这位学旅游的小姐姐貌似就没有这么幸运了,来,我们一一道来。
这位学旅游的小姐姐的导师,让她统计下某个地区的美食情况,然后做分析;然后小姐姐轻松找到了携程网站,准备大干一场(copy),copy半天数据,发现才弄了几十页;在网上找了爬虫软件,不会用,买了付费,指导也不给力。
小姐姐,没关系,Python爬虫来搞定~
import requests
from lxml import etree
headers={
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'
}
def get_info(url):
res = requests.get(url,headers=headers)
html = etree.HTML(res.text)
infos = html.xpath('//ul[@class="jingdian-ul cf"]/li')
for info in infos:
try:
food = info.xpath('dl/dt/a[1]/text()')[0]
address = info.xpath('dl/dt/a[2]/text()')[0]
comment = info.xpath('dl/dd[2]/a/text()')[0]
print(food,address,comment)
except IndexError:
pass
if __name__ == '__main__':
urls = ['http://you.ctrip.com/searchsite/restaurant/?query=%E9%95%BF%E6%B2%99&PageNo={}'.format(str(i)) for i in range(1,10)]
for url in urls:
get_info(url)
小姐姐曰:其实你是一个好人~
数据处理不太会?
好,有的小姐姐数据有了(可能比较爱笑),但拿来的数据都是各种格式的,例如下面这个小姐姐。
老师给的都是一个个txt,里面全是花括号括起来的,我只是需要里面的几个字段而已啦,以下是聊天记录:
- 小姐姐:大佬,我的数据是这样的,发给我部分文件。
- 我:好的,那你想做什么?
- 小姐姐:就是获取每个txt中的几个字段
- 我:这个很简单呀,这个花括号就是类似字典的结构,解析以下就行。
- 小姐姐:字典?解析?
- 我:。。。好吧,给你写代码吧
这里就不写具体代码了,会python的这个应该问题不大,循环读取文件,用JSON库来解析,提取部分字段就OK了。然后代码几分钟就搞定了,发给小姐姐。
小姐姐曰:大佬,你真快。。。
模型建立无从下手?
像我这种学林业的研究生,大部分同学都没有好好学习一门编程语言,但是毕业论文,大部分情况下又需要进行建模,接下来是小姐姐对话时间。
- 小姐姐:大佬,我需要建模,帮帮我
- 我:你是要回归还是分类?
- 小姐姐:回归的,目前只会用Excel做线性回归,没有创新点,给我来点炸的。
- 我:现在有很多算法呀,knn,svm,集成算法,神经网络,都可以做回归,sklearn调包就行。
- 小姐姐:人家不会嘛,这些我都想来一个,然后看看哪些效果好。
- 我:这个有点多,调参也需要时间的。。
- 小姐姐:求你啦,我请你吃饭。
- 我:好嘞~(无节操)
最后把结果发给她了。 小姐姐日:你什么都会啊,男人果然都是大猪蹄子。
总结
当然,毕业论文真的也没有那么简单,里面还会涉及很多本身专业的东西,Python只是作为一个辅助工具,帮助解决问题而已。譬如说我,有人问,我天天写Python,自己的专业是不是兼顾的不好?对,就是兼顾的不好,所以,我的论文在初期就遇到了坑,好在现在都处理好了,我论文的坑,下次再讲~
- Hadoop数据分析平台实战——110Hive介绍和Hive环境搭建离线数据分析平台实战——110Hive介绍和Hive环境搭建
- 干货|普通反爬虫机制的应对策略
- python基础-字符串与编码
- Codeforces 708A Letters Cyclic Shift
- Codeforce 712A Memory and Crow
- 每日一水之strcmp用法
- HDU 3782 xxx定律
- HDU 2566 统计硬币
- HDU 2561 第二小整数
- python基础-数据类型与变量
- HDU 2520 我是菜鸟,我怕谁
- HUST 1586 数字排列
- next_permutation(全排列算法)
- Hadoop数据分析平台实战——100HBase和MapReduce整合离线数据分析平台实战——100HBase和MapReduce整合
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 解析 hashMap 源码之基本操作 get
- RCE(远程命令/代码执行漏洞)原理及复现
- 我的Vue不小心跨域了o(╥﹏╥)o 干它
- 金九银十准备季——Java后端多线程&并发面试题及答案(二)
- TypeScript 设计模式之观察者模式
- pytest文档46-关于https请求警告问题
- pytest文档45-allure添加环境配置(environment)
- Pytest fixture参数化params
- Python 批量合并 Excel
- 用 Python 了解一下最炫国漫《雾山五行》
- Python 基础(六):列表与元组
- Word 批量转 PDF
- Python 数据分析(一):NumPy 基础知识
- 每日一题 | 环形排列问题
- 每日一题 | QQ群撩妹问题