就是吃不胖 发布的文章

今年的情人节遇到了疫情,也遇到了脆弱


今天是情人节

疫情持续了很久了

最初的慌乱,也慢慢的消退

本命年总是有好多事情发生,每次都让我措手不及

感觉世界变了好多

我是一个奇怪的人

渴望着爱情,追求着自由

有时候真的毫无逻辑可讲

但是爱一个人却很执着,到现在或许很冷血了吧

长大了,才感觉到身上的担子好重啊

父母妹妹都需要我了,而我貌似还是没有长大

今天彻底的放弃了女朋友,很痛,但必须放弃

她不需要我了,就是我离开的时候了

工作貌似并不顺利,甚至无法开展

讲实话,老板人真的不错,对员工没得说

一个字,踏实

但,一个企业总是多个人组成的

很多事情就变得不是原来那个味道,工作有时候总处在与老大的博弈中

每一份工作我都会认真对待,但无奈资历尚浅,决定不了什么

我只能去问,去学习他的思路,尽管我并不认同,或大部分人不认同的方案

庚子年,我的本命年,多灾多福的一年

这一年经历了

生死的惊心动魄,疫情很严重,心里还是很慌得。国家真的很棒,为了人民真的操碎了心,为中国点赞加油

最爱的人对自己的不信任,在过年的时候,我们分手了

到今天,我才反应过来,她真的走了

感觉自己真的好蠢啊,到最后也不知道为什么,这就是原因吧

庆幸自己有一个好老板,好人事

只是我的资历、能力帮不了太多,但我在这里还是衷心的祝愿公司越办越好

成为业内首屈一指的龙头企业

未来雾太大,我真心看不清,只愿天下人幸福安康

小GAIGAI,离开了我一定要幸福呀,哪个王八蛋敢欺负你,我非砍死他

我的最爱,凭什么让你这个孙子欺负,我就是那个她不认的娘家人

借用

本想吟诗赠天下,奈何自己没文化,只能卧槽,真特么危险

最后

我想推销一下

谁家有缺饭桶的吗?

我来


2020年扫福字,支付宝帮您全年还花呗,技术杨来给您送福字啦


生活,不要太纠结,岁月,不要太不舍,日子,不要太吝啬,梦想,不要太迷茫,一年是一个终点,新年是一个始点,愿2020年的你幸运相伴,成功相随,希望更多,幸福更长。

1.png2.png3.png4.png5.png6.png7.png8.png9.png10.png11.png12.png13.png14.png15.png16.png17.png18.png

新年里充满快乐的味道,人人脸上洋溢着幸福的欢笑。鞭炮驱走了沉闷的空气,礼花带来了喜庆的气氛。街巷里到处是热闹的场景,轻盈的舞步在歌曲声中更加令人痴迷。祝你万事如意,快乐无比!

我的特别年份,保护好我最爱的人。


临近过年,推荐一款高效抢票软件,比较良心的抢票软件


春运大概是每个人都会经历的,火车票总是一票难求。开始海淘抢票工具,尝试过很多的抢票工具,都不是特别的趁手。

发现分流抢票

分流抢票官网

官网截图

不得不说知乎的内容还是比较有质量的,没错这个工具就是在知乎上发现的。当时还觉得是个骗子,回家的心情还是让我选择了他。

了解分流抢票

日志界面、下载界面

日志部分截图

解压后大概就是这个样子

目录结构

在登录界面输入你的12306账号

登录界面

登陆后界面,非常简洁,正常购票流程

截图

官方版帮助文档

分流抢票官方文档

官方视频教程

目前我所知道的最好的抢票软件,欢迎大家尝试哦!

作者的话

分流抢票,是以用户为中心、人性化的抢票软件。不做广告、不做推广、不携带病毒、不收集隐私信息,并接受各方技术评测,全心全意为用户打造一款属于自己的抢票软件

前身是大二时历时一月开发的程序,几经风霜,经过了几年的时间不断的优化和更新迭代,时至今日,还在不断的维护当中,不忘初心。

分情破爱始乱弃,流落天涯思别离。

如花似玉负情意,影如白昼暗自迷。

随风浮沉千叶落,行色匆匆鬓已稀。

一首藏头,讲得清未来,却倒不回过去,执着只为你,愿你一切安好。

任何软件都是辅助程序,不能保证100%的抢到,所有的成果都需要用户努力和坚持。


介绍开源的网易云音乐 NodeJS 版 API,划重点这是个开源项目


发现它就要从大二参加山东省齐鲁软件设计大赛说起,我们的团队叫做神鸟工作室。名字是挺土的,不过结局还好,拿到了二等奖(100块奖金:joy:)。项目是一个音乐软件,我们卡在了音乐来源上面,当时年少轻狂想着全网搜索音乐。当时的我们技术真的是做不到这个,本人开始想办法(不是多牛逼,其实是我真能巴拉),然后就有了下文。

项目介绍

项目地址

文档地址

文档截图

这是基于跨站请求伪造 (CSRF), 伪造请求头 , 调用官方 API实现的网易云音乐api

实现情况

全部接口已升级到最新
具备登录接口,多达100多个接口
更完善的文档

基本功能、特性(部分)

基本功能、特性(部分)

运行这个一本正经的项目

安装项目

$ git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git

$ npm install

运行项目

$ node app.js

服务器启动默认端口为 3000, 若不想使用 3000 端口 , 可使用以下命令 : Mac/Linux

$ PORT=4000 node app.js

windows 下使用 git-bash 或者 cmder 等终端执行以下命令 :

$ set PORT=4000 && node app.js

服务器启动默认 host 为localhost,如果需要更改, 可使用以下命令 : Mac/Linux

$ HOST=127.0.0.1 node app.js

windows 下使用 git-bash 或者 cmder 等终端执行以下命令 :

$ set HOST=127.0.0.1 && node app.js

在这里非常感谢这个项目的作者,非常好的开源项目。

不久的将来,我会上线这个api,免费供网友使用。全免费哦,为保证服务器稳定运行,可能会限制次数,如您有需要可为您在您的主机上免费搭建专属音乐api服务,不收费哦。


使用Python抓取12306火车信息,存入csv文件,仅介绍实现思路


马上就要年底过年了,提前去网站上请回家的票。神奇的抢到了硬座票,心里很是欣慰,今年终于不用站着回家了。
但是开心的时间总是那么短暂,一周过后我回来继续抢返程的火车票。真的是查了好几遍,都没有返程的车,多方验证之后发现没有返程的列车,所以……

网站抓取思路

打开12306的官方网站,按F12打开你的开发人员工具,找到Network标签,F5刷新一下,获取车站信息。

列车车次信息列表

获取车站信息

部分数据

var station_names ='@bjb|北京北|VAP|beijingbei|bjb|0@bjd|北京东|BOP|beijingdong|bjd|1@bji|北京|BJP|beijing|bj|2@bjn|北京南|VNP|beijingnan|bjn|3@bjx|北京西|BXP|beijingxi|bjx|4@gzn|广州南|IZQ|guangzhounan|gzn|…………
获取所有车次信息(朋友提供)

列车车次信息列表

车次详细信息查询

列车车次信息查询页面

查询到的信息

车次详细信息查询接口(G126为例)

按自己需求实现部分功能,部分功能不对外开放,仅介绍抓取思路
# -*- coding:utf-8 -*-
'''
车次信息查询页面
https://kyfw.12306.cn/otn/queryTrainInfo/init
车次信息查询接口
https://kyfw.12306.cn/otn/queryTrainInfo/query?leftTicketDTO.train_no=5i0000G12600&leftTicketDTO.train_date=2020-01-24&rand_code=

车站信息
https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9138
车次信息
https://kyfw.12306.cn/otn/resources/js/query/train_list.js
'''
import json

import requests


class MainApp(object):
    def __init__(self):
        self.session = requests.session()

    def start(self):
        self.get_station_name()
        self.get_train_list()
        pass

    # 抓取火车车次信息
    def get_train_list(self):
        line = self.session.get('https://kyfw.12306.cn/otn/resources/js/query/train_list.js').text
        item = line.replace('var train_list =', '')
        json_now = json.loads(item)['2019-10-10']
        with open('train_list.csv', 'w+') as train_list_csv:
            train_list_csv.write('字段1,字段2,字段3,字段4,字段5,字段6,字段7')
            # 高铁
            for g in json_now['G']:
                print(g)
                no = g['train_no']
                station_train_code = str(g['station_train_code'])
                che = station_train_code[0:station_train_code.find('(')]
                se = station_train_code[station_train_code.find('(') + 1:-1].split('-')
                train_list_csv.write('\n%s,%s,%s,%s,%s,%s,%s' % (no, '高铁', 'G', che, se[0], se[1], '2019-10-10'))
            # 城际高铁
            for c in json_now['C']:
                print(c)
                no = c['train_no']
                station_train_code = str(c['station_train_code'])
                che = station_train_code[0:station_train_code.find('(')]
                se = station_train_code[station_train_code.find('(') + 1:-1].split('-')
                train_list_csv.write('\n%s,%s,%s,%s,%s,%s,%s' % (no, '城际高铁', 'C', che, se[0], se[1], '2019-10-10'))
            # 动车
            for d in json_now['D']:
                print(d)
                no = d['train_no']
                station_train_code = str(d['station_train_code'])
                che = station_train_code[0:station_train_code.find('(')]
                se = station_train_code[station_train_code.find('(') + 1:-1].split('-')
                train_list_csv.write('\n%s,%s,%s,%s,%s,%s,%s' % (no, '动车', 'D', che, se[0], se[1], '2019-10-10'))
            # 直达
            for z in json_now['Z']:
                print(z)
                no = z['train_no']
                station_train_code = str(z['station_train_code'])
                che = station_train_code[0:station_train_code.find('(')]
                se = station_train_code[station_train_code.find('(') + 1:-1].split('-')
                train_list_csv.write('\n%s,%s,%s,%s,%s,%s,%s' % (no, '直达', 'Z', che, se[0], se[1], '2019-10-10'))
            # 特快
            for t in json_now['T']:
                print(t)
                no = t['train_no']
                station_train_code = str(t['station_train_code'])
                che = station_train_code[0:station_train_code.find('(')]
                se = station_train_code[station_train_code.find('(') + 1:-1].split('-')
                train_list_csv.write('\n%s,%s,%s,%s,%s,%s,%s' % (no, '特快', 'T', che, se[0], se[1], '2019-10-10'))
            # 快速
            for k in json_now['K']:
                print(k)
                no = k['train_no']
                station_train_code = str(k['station_train_code'])
                che = station_train_code[0:station_train_code.find('(')]
                se = station_train_code[station_train_code.find('(') + 1:-1].split('-')
                train_list_csv.write('\n%s,%s,%s,%s,%s,%s,%s' % (no, '快速', 'K', che, se[0], se[1], '2019-10-10'))
            # 其他
            for o in json_now['O']:
                print(o)
                no = o['train_no']
                station_train_code = str(o['station_train_code'])
                che = station_train_code[0:station_train_code.find('(')]
                se = station_train_code[station_train_code.find('(') + 1:-1].split('-')
                train_list_csv.write('\n%s,%s,%s,%s,%s,%s,%s' % (no, '其他', 'O', che, se[0], se[1], '2019-10-10'))

    # 抓取火车站信息
    def get_station_name(self):
        line = self.session.get('https://kyfw.12306.cn/otn/resources/js/framework/station_name.js').text
        item = line.replace('var station_names =\'', '').replace('\';', '').split('|')
        print(item)
        with open('station_name.csv', 'w+') as station_name_csv:
            station_name_csv.write('字段1,字段2,字段3,字段4,字段5,字段6')
            for i in item:
                if '@' in i:
                    station_name_csv.write('\n%s' % i)
                else:
                    station_name_csv.write(',%s' % i)


if __name__ == '__main__':
    main = MainApp()
    main.start()

抓取数据存入csv,后续会入库,提供个性化的查询,也会给出快捷跳转至12306官网查询页面,直接进行购票。

模拟正常人行为进行查询获取公共数据,防止对网站造成压力(我相信我做不到)

不做商业使用,进个人网站展示,展示功能不保证高可用,仅作学习交流分享出现。