前言
又到了我校一年一度的论文开题和中期检查时间, 平时看上去忙碌却一个字都还没写的学生还是大有人在的, 而我也就是其中一位~ 今天, 我就来说说我是如何利用 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=长沙&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, 自己的专业是不是兼顾的不好? 对, 就是兼顾的不好, 所以, 我的论文在初期就遇到了坑, 好在现在都处理好了, 我论文的坑, 下次再讲~
预知后事如何, 请听下回分解~
来源: http://www.jianshu.com/p/dc10b988b58e