朝简单处想 往认真处行


  • 首页

  • 标签

  • 分类

  • 归档

定时运行jupyter, 并且将结果发送至邮箱

发表于 2022-11-21
字数统计: 276 字 | 阅读时长 ≈ 1 分钟

目的:

1)定时运行 jupyter-notebook/lab 的内容;
2)将生成的结果方式发送到邮件

安装mljar-mercury

Build web app from Python Notebook | MLJAR

几个注意的点:
1)安装最好用 python3.8 进行安装,不然安装时候会报错;
2)安装路径中不要有中文字符;
3)时区配置不影响定时运行的结果;
4)邮箱发送使用的是 Django,可以查相应的教程,不同邮箱的设置稍微不太一样;

安装过程的一些代码:

1
2
3
4
5
6
7
8
pip3 install mljar-mercury -i https://pypi.tuna.tsinghua.edu.cn/simple 

# Mac版本邮箱配置,Windows 包括linux都是类似的思路
export EMAIL_HOST=smtp.qq.com
export EMAIL_HOST_USER=1234567@qq.com(你的qq邮箱)
export EMAIL_HOST_PASSWORD=xxxxxx(授权码)
export EMAIL_PORT=25
export DEFAULT_FROM_EMAIL=1234567@qq.com(你的qq邮箱)

最后效果图
图见文末链接

收件箱(测试每分钟发一次)
图见文末链接

参考链接

ERROR: Could not build wheels for gevent, which is required to install pyproject.toml-based projects
使用QQ邮箱发送邮件,QQ邮箱的smtp设置 - 使用心得 - UJCMS
Python Django 使用 QQ / 新浪邮箱发送邮件配置 - 简书

蜗牛背着那重重的壳呀

发表于 2022-06-14
字数统计: 2.5k 字 | 阅读时长 ≈ 9 分钟

写在开头:

在自己买房之前,对整个流程一脸懵逼,各种渠道查了不少(包括小红书,微信,B站,豆瓣,github, 搜索引擎,各个买房 app/小程序,家人朋友的介绍)。

但是得到的都是非常零碎的信息, 一直没找到一篇相对完整的流程性的介绍文章,让我知道这大概是个什么事情? 我该怎么一步一步走下去?就像是没有导航软件的路痴患者,又像是没有星星的漆黑夜晚(不是), 花了不少时间。

因此就想着做功课的同时把这个过程写下来,给自己做个记录,说不定也可以帮到有需要的人。

一些注意的点

  1. 买房的时间介于 20210330 以后和 2022528 之前,政策资质相关不可参考;
  2. 出于各种考虑,买了二手房,下边的内容只针对二手房;
  3. 文章主要涉及费用和买房的流程;
  4. 个人感觉花钱找相对靠谱的中介还是挺省事儿的,基本没出什么古怪的问题;
  5. 使用各个线上平台的感受:
    1) 小红书有不少的女生分享的经验,参考价值大,但是篇幅限制,都比较短;
    2) 微信公众号交易性质的公众号可以学到不少,但是营销味过重,不过也有比较好的博主;
    3) B站视频也挺好的,但是对我个人来说看视频很花时间(相比较文本);
    4) 贝壳之类的 app 会有一些房子销售数据可以参考,同时也可以问相应的中介加以确认;
    以上这些我觉得不错的链接都贴在文章里了,供参考;

买房整体的流程(参考)

细节可能有差异,但是问题不大(图片参考文末的公众号链接,下同)
[image:F74C0A3A-8111-4AFD-85DE-1C693377733C-6620-000071D54F724B4A/0.jpg]

查询资料

网上查资料,免得被坑 =.=
同时列一些网上就可以查到的资料,节省时间;

西安购房资格(2022528政策后不适用)

[image:E0417FAB-CEBE-4568-9066-A6561175D8B5-6620-000071B36D984B94/asynccode.png]

参考链接: 2022年西安购房指南,建议收藏!

费用/预算相关(举例)

总房款
150w-200w
首付款
30%
月供额
商贷,30年,等额本息;有的房子还贷不到30年;

房贷计算器

参考链接:房贷计算器

举例:180w的房子,首付 30%,剩下 120w 等额本息还款 6151.73
[image:D7DCBB97-8833-46A5-8C5D-A9F370000B9C-6620-000071B36D4CF6DE/asynccode.png]

等额本息和等额本金
等额本息:本金利息一块算然后取平均数,总金额相对高;
等额本金:就是本金先取平均然后剩下的记利息,前期还贷压力大;
固定工资且资金紧张推荐本额等息;

参考链接:一分钟教你读懂什么是等额本息与等额本金

中介费
新房没有中介费;
二手房一般是总房款的 0.88%-2.5%;

税费
网签价百分比缴纳;

个人所得税
卖家购房满5年,本地唯一,免征;不满交 1%;

增值税
卖家购房满2年, 普通住宅免征;
未满2年网签价格/(1+5%)x5.65%;

买房涉及的费用总结
[image:B8DEBE72-C38D-4527-8DA8-0D83C58D0232-6620-000071B36CFCF962/asynccode.png]
1)契税:分三类1%-1.5%-3%
2)增值税 产权不满两年需要交5%,满两年不交
3)个人所得税 产权不满5年 差额的20%
产权满5年唯一住宅 免税
4)继承赠予税 3%
5)土地出让金 二手房是国企宿舍福利房80-100/平米
6)中介费 二手房1.5%-3%
7)交易手续费 4元每平米
8)权属登记费 80元每套
9)印花税 5元
买二手房注意在购房合同上写清楚这些税费是由哪一方承担

参考链接: 房屋交易税费计算表
参考链接: 【买房】前必看!B站最全购房税费讲解!纯干货!算清楚账再买房!_哔哩哔哩_bilibili

费用计算器(这个算出来还得加上中介费预估 2% )

参考链接: 西安二手房税费计算器 2021年西安二手房税费怎么算? - 房贷计算器

[image:DD0FC286-6134-4CF0-99E9-0F6D28F42C3E-6620-000071B36CBB446E/asynccode.png]
估算举例,也就是说:买90平房子,满五非唯一,首套房,总价 180w(均价2w),预估额外费用为 38000(税费)+ 36000(中介费2%算) = 74000;

看房

1)本来自己在线上看了会儿,后来发现网上的都是指导价,不是真实报价,就直接放弃去找中介了;
2)中介找了好几个,明显能感觉不同的中介推过来的房子有差别,选一个相对让自己舒服的;
3)知道自己的预算,对位置的要求,以及户型,小区的条件后;让中介推荐合适的房源,比较比较,实地去感受一下,或多或少纠结那么一段时间,就能确定下来;

二手房注意事项

1) 核实房屋产权人信息, 房屋房产证是否和身份证一致
2) 共有产权人,是否能够到场/是否同意出售;
3) 是否有抵押,什么银行/公积金还是商业贷款;是否允许提前还款,提前还款多长时间?
4) 房东做房查,是否存在被查封或者其他形式的限制转让;
5) 是否有出租的情况;
6) 确定家具家电的交付情况,清单;
7) 土地的使用年限还有多久;
8) 明确双方的违约责任;
9) 谈好中介费以及税费;

参考链接: 购买二手房要避免的坑,你中招了吗?包含了产权抵押贷款家具税费_哔哩哔哩_bilibili

二手房时间记录

20220508
签三方合同,付押金和中介费

20220509
购房资料审核

20220517
网签合同,需要仔细核对,和中介确认,随后的面签要用;

20220525
面签, 买方需要携带:

1) 网签合同原件;
2) 身份证;
3) 户口本(集体落户那一页就行)
4) 详细版征信(自己去银行网点,可以查,中午午休时间过去也可以)
5) 流水(银行app导出)
6) 收入证明原件(公章或人事章,公司给开)
7) 私章(1.5**1.5,不能带印字,可以让中介帮忙弄)

然后当天早上签了一大堆字,按了一大堆手印,还办了银行的储蓄卡和信用卡,为了都低利率,还办了好几个免费的业务,比较繁琐费时间;

20220526
批贷
[image:4EBD0C03-C73A-42B0-BEE4-1C6FAA5C788F-6620-00007230D5160803/69D9F17F-5EA5-4789-8C9A-62A0A23993D4.png]

20220527
去银行将首付存入监管账户。
去之前需要携带身份证,监管协议,银行卡(实体卡片,农业银行只能一次性刷pos机,需要提前将首付转到刷首付的银行卡)。
去了以后需要填表(存款凭证),然后刷卡即可,拿到两联存款凭证和小票保存好,发给中介。
[image:2F350002-C902-456C-9CBA-8E63E913D031-6620-000071B36AFA3759/asynccode.jpg]
[image:9EAD67E7-4B05-49D8-BA36-434E202460CD-6620-000071B36AC227AA/asynccode.jpg]

20220531
晚上收到银行放款短信,从此王二小过上了还月供的生活( ‾᷄꒫‾᷅ )
[image:D2287333-2D50-4A0C-B127-4F6BEBE54C3E-6620-000071B36A67D99F/asynccode.jpg]
[image:73C29CCF-B710-49FF-9BC9-BF7ED9A7F164-6620-000071B36A339AB8/asynccode.jpg]

20220601
收到房管局短信,然后就可以去办理过户。
需要携带:身份证,银行卡;
[image:87DF72CD-79DD-4914-A140-F4D80D0DFFCB-6620-000071B369DD9A27/asynccode.jpg]

20220606 办理过户
过户买方需要携带:
1、身份证
2、户口本原件及复印件一份
3、银行卡一张(缴税用)
4、住房查询表(过户大厅自助机打印)

去了以后提前打印好住房查询表,然后等九点以后,抽号,到指定窗口办理业务;
实际办理业务很快,但是因为系统坏了,硬生生等了一个多小时;
办理完以后收到短信:
[image:038E487E-9A29-47E9-83C8-5A14A4C42BCA-6620-000071B369334004/asynccode.jpg]

20220609 房产证
中介拍了房产证的照片给我,然后银行拿去作抵押,据说大概 3 个月后才能到自己手里;

20220611 物业交割
包含水电费,燃气费,物业费,确保业主费用已经缴清;
还有就是确保家具之类的需要清理;

后续就是想办法装修了…

参考链接

2022年西安购房指南,建议收藏!
房贷计算器
一分钟教你读懂什么是等额本息与等额本金
房屋交易税费计算表
【买房】前必看!B站最全购房税费讲解!纯干货!算清楚账再买房!_哔哩哔哩_bilibili
西安二手房税费计算器 2021年西安二手房税费怎么算? - 房贷计算器
购买二手房要避免的坑,你中招了吗?包含了产权抵押贷款家具税费_哔哩哔哩_bilibili
72 打瞌睡的猫先森发布了一篇小红书笔记,快来看吧! 😆 K17U9T7UPnhUdGJ 😆 http://xhslink.com/c6Bl2f,复制本条信息,打开【小红书】App查看精彩内容!
89 脑壳儿 Life发布了一篇小红书笔记,快来看吧! 😆 gR7kbuZ9sS7vutF 😆 http://xhslink.com/EDO1qg,复制本条信息,打开【小红书】App查看精彩内容!
2020年西安买房购房全流程总汇!【西安买房避坑指南】
https://zhuanlan.zhihu.com/p/365622938
三室刚需看过来_哔哩哔哩_bilibili
各楼层优缺点有哪些?_哔哩哔哩_bilibili
要买房,先教你如何选房
微博-保姆级攻略
买下人生第一套房是种什么体验?
吐血整理!90后二手房交易全流程+避坑指南
板楼和塔楼的区别?板塔结合好吗?
购买二手房要避免的坑,你中招了吗?包含了产权抵押贷款家具税费_哔哩哔哩_bilibili
【买房】前必看!B站最全购房税费讲解!纯干货!算清楚账再买房!_哔哩哔哩_bilibili

根据代码获取ETF的名字

发表于 2022-05-23
字数统计: 320 字 | 阅读时长 ≈ 1 分钟

直接上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import requests
import json

def get_name(code):
# etf 51 开头是SH, 15 是 SZ
if code.startswith('51'):
symbol = 'SH' + code
elif code.startswith('15'):
symbol = 'SZ' + code
elif code.startswith('16'):
symbol = 'SZ' + code

headers = {
'authority': 'stock.xueqiu.com',
'accept': '*/*',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,ja;q=0.7,zh-TW;q=0.6',
'cookie': your cookie here,
'origin': 'https://xueqiu.com',
'referer': 'https://xueqiu.com/S/SZ162411',
'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="101", "Google Chrome";v="101"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-site',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36',
}

params = (
('symbol', symbol),
('extend', 'detail'),
)

response = requests.get('https://stock.xueqiu.com/v5/stock/quote.json', headers=headers, params=params)
res = response.content
name = json.loads(res)['data']['quote']['name']
return name

# 示例
code_list = ['513050', '162411']
for code in code_list:
name = get_name(code)
print(name)

# 输出
# 中概互联网ETF
# 华宝油气LOF

代码规则

基金代码规则你知道吗? 基金代码为六位数字,很多情况下,代码比基金名称更容易记,那么基金的代码有何含义,基金代码有什么编制规则呢?下面分上市与非… - 雪球

读书笔记

生活的悲哀之处在于,我们总是老得太快,而又聪明得太慢。等到你不再修正的时候,你也就不在了。

Windows/Linux 定时任务

发表于 2022-05-21
字数统计: 510 字 | 阅读时长 ≈ 1 分钟

Windows

Windows 定时执行 bat 脚本

1
2
3
4
5
6
7
8
9
10
# 每天8:00执行test脚本
schtasks /create /tn restart_task /tr D:\test.bat /sc DAILY /st 8:00:00

# 每天8:00执行test脚本
schtasks /create /tn restart_task /tr C:\Users\user1\Documents\radmin_rerun.bat /sc DAILY /st 8:00:00

# 查看, 也可以在 任务计划程序 查看创建好的定时任务,如下图所示
schtasks /query /tn restart_task

# 其他的见参考链接

参考链接
windows中添加bat定时任务且bat文件中是cmd命令时_前进的小白的博客-CSDN博客_bat设置定时任务
windows下之定时执行bat脚本_码厚炮的博客-CSDN博客_定时执行bat脚本

Windows 定时执行 python 脚本

1 创建,然后一路按需设置
图片见参考链接
2 在这个页面设置 python 脚本相关的东西,红框1是 python 解释器路径(包含python.exe), 红框2是 python 脚本路径,红框3是 python 解释器所在目录.
3 完结撒花

Linux

Linux 的更简单,详细见参考链接

1
2
# 每天 5:00和17:00执行任务
0 5,17 * * * /scripts/script.sh

参考链接
关于定时执行任务:Crontab的20个例子 - 简书

读书笔记

你对年轻人有什么人生建议吗?
每天起床的时候,争取变得比你从前更聪明一点。认真地、出色地完成你的任务。慢慢地,你会有所进步,但这种进步不一定很快。但你这样能够为快速进步打好基础……每天慢慢向前挪一点。到最后——如果你足够长寿的话——像大多数人那样,你将会得到你应得的东西。
人生在不同阶段会遇到不同的难题,非常棘手的难题。我认为有三点有助于应付这些困难:
·期望别太高;
·拥有幽默感;
·让自己置身于朋友和家人的爱之中。
最重要的是,要适应生活的变化。如果世界没有改变,我现在身上仍然会有12个缺陷。

图片链接

Windows/Linux 定时任务

东财北向资金

发表于 2022-05-16
字数统计: 585 字 | 阅读时长 ≈ 2 分钟

想要实现的

沪深港通资金流向 _ 数据中心 _ 东方财富网
北向神器
[图片见参考链接]

部分代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import requests, json, re
import pandas as pd

cookies = {
your cookies here}

headers = {
your headers here
}

params = (
('fields1', 'f1,f2,f3,f4'),
('fields2', 'f51,f54,f52,f58,f53,f62,f56,f57,f60,f61'),
('ut', 'b2884a393a59ad64002292a3e90d46a5'),
('cb', 'jQuery1123041352981668377664_1652237769597'),
('_', '1652237769600'),
)

response = requests.get('https://push2.eastmoney.com/api/qt/kamtbs.rtmin/get', headers=headers, params=params, cookies=cookies)

res = response.content
match = re.search("\((.*)\)", str(res))
data = json.loads(match.group(1))['data']['s2n']
# 略去简单处理得到
df.head()
df['北向资金净买额(亿)'] = df['北向资金净买额'].astype(float)/10000

# 画图
import matplotlib.dates as mdates
date_fmt = mdates.DateFormatter('%H:%M')
# plot your data
df['time'] = pd.to_datetime(df['time'])
ax = df.plot.line(x='time', y='北向资金净买额(亿)')
# add the date formatter as the x axis tick formatter
ax.xaxis.set_major_formatter(date_fmt)

结果

[图片见参考链接]

参考链接

雪球模拟组合脚本化调仓
沪深港通资金流向 _ 数据中心 _ 东方财富网
北向神器
东财北向资金

读书笔记

不用就忘倾向

所有技能都会因为不用而退化。

明智的人会终身操练他全部有用然而很少用得上的、大多数来自其他学科的技能,并把这当作是一种自我提高的责任。如果他减少了他操练的技能的种数,进而减少了他掌握的技能的种数,那么他自然会陷入“铁锤人倾向”引起的错误之中。

他的学习能力也会下降,因为他需要用来理解新经验的理论框架已经出现了裂缝。对于一个善于思考的人而言,把他的技能编排成一张检查清单,并常常将这张清单派上用场,也是很重要的。其他操作模式将会让他错过许多重要的事物。

许多技能唯有天天练习,才能维持在非常高的水平。钢琴演奏家帕德雷夫斯基(Ignacy Jan Paderewski,1860—1941,波兰钢琴家、作曲家、外交家和政治家,曾任波兰总理)曾经说过,如果他有一天不练琴,他就会发现自己的演奏技巧下降,如果连续一个星期不练,那就连听众都能察觉了。

人们只要勤奋就能降低不用就忘倾向的影响。

关键字爬取公众号最新文章

发表于 2022-02-20
字数统计: 511 字 | 阅读时长 ≈ 2 分钟

写在开头

之前一篇文章实现了爬取公众号历史文章,这篇实现通过关键字爬取最新的文章,这样做的目的是:两篇加起来做到获取和维护更新,特别是弄成自动化脚本的话,就只需要检查数据就行,还是为了节省时间,不想做重复无聊的事情;

简单记录下代码。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from bs4 import BeautifulSoup
from selenium import webdriver

# 火狐的驱动, 因为只需要最新的, 因此不需要登陆, 登陆的方法之前的文章也有介绍
opt = webdriver.FirefoxOptions()
# 设置无界面, 不然每次都会打开浏览器
opt.add_argument("--headless")
driver = webdriver.Firefox(options=opt)

keyword = '20220218冬奥会'
url = 'https://weixin.sogou.com/weixin?query='+keyword+'&s_from=input&_sug_=y&type=2&page='+str(page_number)+'&ie=utf8'
driver.get(url)

# 选取检索到的第一个链接
driver.find_element_by_xpath('//*[@id="sogou_vr_11002601_title_%s"]'%0).click()
soup = BeautifulSoup(driver.page_source, "html.parser")
# 跳到因为点击打开的第二个窗口
driver.switch_to.window(driver.window_handles[1])
# 标题
title = soup.find(id = "activity-name").get_text().strip()
# 发布时间
time = soup.find(id = "publish_time").get_text().strip()
# 公众号
name = soup.find(id = "js_name").get_text().strip()
# 文章内容内容,拿到内容后直接用正则匹配获取自己想要的文本内容就行
content = soup.find(id = "js_content").get_text().strip()
# 关闭浏览器释放资源
driver.quit()

参考链接

基于另类数据对ETF进行回测
一年前看过某个公众号的某个文章,但是我忘了…
python+selenium+firefox使用与部署详解
python爬取搜狗微信指定关键词的全部内容_一条小黑龙的博客-CSDN博客

写在后边

整理笔记的时候翻到了 19 年在北京的时候写的一句话,在租的房子里,保洁阿姨在打扫客厅,我在房间里工作:

2019年8月17日 下午12:29
门外阿姨在工作,我也在工作.. 大家都在生活着;

现在也是这样,生活继续着… 时间越来越不够用的样子
2022年2月20日 下午6:01

获取基金净值,标记买卖点

发表于 2022-02-12
字数统计: 695 字 | 阅读时长 ≈ 3 分钟

写在开头

想对买了的基金多上点儿心,又不想再各个 app 去查(耗时费力,且提供的功能也有限),就自己实现一些功能:
1)拿到某只基金的净值;
2)标记买卖点;

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import pandas as pd
import requests,re,ast
from bs4 import BeautifulSoup
from datetime import datetime
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei'] # 支持中文
plt.rcParams['axes.unicode_minus']=False

# 根据天天基金获取每日的净值
def get_data(code, n):
dt = pd.DataFrame(columns=['代码', '日期', '单位净值', '累计净值'])
for n in range(1,n):
res = requests.get('http://fund.eastmoney.com/f10/F10DataApi.aspx?type=lsjz&code=' + code + '&page=' + str(n) + '&per=20&sdate=&edate=&rt=0.7823397557719116')
soup = BeautifulSoup(res.content, "html.parser")
value_list = soup.get_text().split('%')
for x in range(0, len(value_list)-1):
match = re.search('(\d{4}-\d{2}-\d{2})(\d+\.\d{4})(\d+\.\d{4})' ,value_list[x])
dt = dt.append({'代码': code, '日期': match.group(1), '单位净值': float(match.group(2)), '累计净值': float(match.group(3))}, ignore_index=True)
dt.日期 = pd.to_datetime(dt['日期'])
dt.index = pd.to_datetime(dt['日期'])
return dt

# 标记买入卖出日期
def label(df, buy_data, sell_data, title): # date is a list
fig = plt.figure(figsize=(15,6))#设置画布大小
ax1 = fig.add_subplot(111)
sns.lineplot(ax=ax1, x="日期", y="单位净值", data=df, color = 'gray')
# 画散点图的时候会报错,加个 values 就行
plt.scatter(buy_data.日期.values, buy_data.单位净值, s=40, color='red',zorder=1)
plt.scatter(sell_data.日期.values, sell_data.单位净值, s=40, color='green',zorder=1)

plt.xlabel(u"日期",fontsize=15)#设置横坐标,以及字体大小
plt.ylabel(u"单位净值",fontsize=15)#设置纵坐标,以及字体大小
# 设置xy轴刻度文字大小
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.title(title, fontdict = {'fontsize' : 20})
#plt.legend(fontsize=13)

# 以 002708 为例
df_002708 = get_data('002708', 100)
# 买入日期和卖出日期
buy_date = ['2020-11-30']
sell_date = ['2022-02-11']
sell_data = df_002708[[True if x.strftime('%Y-%m-%d') in sell_date else False for x in list(df_002708.index)]]
buy_data = df_002708[[True if x.strftime('%Y-%m-%d') in buy_date else False for x in list(df_002708.index)]]

label(df_002708, buy_data, sell_data, '大摩健康产业-002708')

出来的图大概是这样的,谁说我没坐过过山车🎢(🐶)
见文末链接

写在后边

你必须有浓厚的兴趣去弄明白正在发生的事情背后的原因。如果你能够长期保持这种心态,你关注现实的能力将会逐渐得到提高。如果你没有这种心态,那么即使你有很高的智商,也注定会失败。

你若想在任何领域拥有竞争力,就必须熟练地掌握该领域的方方面面,不管你是否喜欢这么做,这是人类大脑的深层结构决定的。

路过:我也不认为随随便便就能做好事情…

链接

获取基金净值,标记买卖点

一年前看过某个公众号的某个文章,但是我忘了…

发表于 2022-01-30
字数统计: 505 字 | 阅读时长 ≈ 2 分钟

写在前边

1)先说问题:大概去年某个时间在微信上看过一篇文章,当时候觉得有意思,但是没有收藏;只记得几个关键字,想用微信直接搜,结果又太多了;就…「想得却不可得,你奈人生何?」
2)好在搜狗可以搜微信文章,大概是这样,就想试着用程序爬一下:
3)结论:方法是成功了,结果却没有拿到,原因在于搜狗搜索貌似没有检索到这篇文章(叹气),就简单记录下爬取的方法吧。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import sys
import time
import re
from bs4 import BeautifulSoup
from selenium import webdriver
import pandas as pd

# 登陆, 不然只能查 10 页的搜索结果
driver = webdriver.Firefox() # 这里一定要用火狐的驱动,chrome 的登陆后会被识别...
url = 'https://weixin.sogou.com'
driver.get(url)
time.sleep(5)
driver.find_element_by_id('loginBtn').click()
time.sleep(10)

# 翻页,并且获取每页的公众号和链接(貌似只返回 100 页)
df = pd.DataFrame(columns = ['name', 'link'])
keyword = '南京 买房 规划局'
for page_number in range(0, sys.maxsize):
print(page_number)
time.sleep(10)
url = 'https://weixin.sogou.com/weixin?query='+keyword+'&s_from=input&_sug_=y&type=2&page='+str(page_number)+'&ie=utf8'
driver.get(url)
soup = BeautifulSoup(driver.page_source, "html.parser")
contents = soup.find_all(class_ = "txt-box")
for content in contents:
content_dict = dict()
link_and_name = content.find_all('a')
link = link_and_name[0]['href']
name = link_and_name[1].text
content_dict['name'] = name
content_dict['link'] = link
df = df.append(content_dict, ignore_index = True)

# 然后去看有没有自己想要的公众号;

写在后边

1)上边的脚本还是有些问题,比如如果短时间翻页太多,会让你输验证码;拿到的链接其实不是真实公众号文章的链接,需要再做一下处理,时间关系,我就没有实现,相应的一些解决办法在参考链接里;
2)看到好的文章,句子啊,记得平时做好记录;

参考链接

https://blog.csdn.net/m0_46521785/article/details/113776386
https://www.pythonf.cn/read/129313
https://segmentfault.com/a/1190000023622107

Python 爬取网页 PDF 文本

发表于 2022-01-27
字数统计: 595 字 | 阅读时长 ≈ 2 分钟

写在开头

问题:有时候会碰到有意思的研报/论文,为网页 pdf 文档,想要抓取其中的某些信息, 手动摘录的话,又太慢了;
问题存在的唯一意义就是 「解决它」;
简单记录下;

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import requests
from io import StringIO, BytesIO
from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter, PDFResourceManager
from pdfminer.pdfpage import PDFPage

def get_score(url):
pdf_content = BytesIO(requests.get(url).content)
row = dict()
resource_manager = PDFResourceManager()
fake_file_handle = StringIO()
converter = TextConverter(resource_manager, fake_file_handle)
page_interpreter = PDFPageInterpreter(resource_manager, converter)
# 这里是在翻页
for page in PDFPage.get_pages(pdf_content,
caching=True,
check_extractable=True):
page_interpreter.process_page(page)
# 我这里只取了第一页
break
# 获取第一页的内容
text = fake_file_handle.getvalue()
# 这里做文本的处理即可
return text

写在结尾

摘录书里的一个小片段,每天学习一点点:

大约在我15岁的时候,我们全家去太阳谷滑雪;假期的最后那天,爸爸和我冒着风雪开车出去,他绕了十分钟的路去给我们开的那辆红色吉普车加油。当时他正争分夺秒地让我们全家能赶得上回家的飞机呢,所以到加油站后当我发现油箱里还有半箱油时,我感到很吃惊。我问爸爸,还有那么多汽油,我们为什么要停下来;他教导我说:“查理,你要是借了别人的车,别忘了加满油再还给人家。”

我在斯坦福念大一时,有个熟人把车借给我。倒不是因为他跟我关系很好,而是因为一个我们都认识的朋友迫使他这么做。那辆奥迪佛克斯是红色的,油箱里还有一半油。所以我想起了吉普车的事,先把油加满了,再将车还回去。他发现了。自那以后,我们共同度过了很多美好的时光,我结婚的时候,他是我的伴郎。

从斯坦福毕业之后,我才知道当年度假时我们住的是瑞克·格伦的房子,开的是瑞克·格伦的吉普。瑞克是爸爸的朋友,当他回到太阳谷,就算吉普车的汽油比他离开的时候少,他也自然不会介意,甚至可能都不会发现。但爸爸无论什么事情都做得公平和周到。所以那天我不仅学到了如何交朋友,还学到了如何维护友谊。

画了几个ETF的图

发表于 2022-01-24
字数统计: 444 字 | 阅读时长 ≈ 2 分钟

写在开头

做几个 ETF 的数据,记录一下;
想尽量复现自己见到的不错的数据;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import pandas as pd
import requests, json

def get_price(code, start_date, end_date):
url = 'https://q.stock.sohu.com/hisHq?code=cn_%s&start=%s&end=%s&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp&r=0.5903327949924708&0.9198253567636039' % (code, start_date, end_date)
response = requests.get(url)
#import pdb; pdb.set_trace()
json_content = json.loads(response.text.strip('\n').strip('historySearchHandler(').strip(')'))[0]['hq']
df = pd.DataFrame(columns = "日期 开盘 收盘 涨跌额 涨跌幅 最低 最高 成交量(手) 成交金额(万)".split("\t"))
for info in json_content:
column_dict = {'日期': info[0], '开盘': info[1], '收盘': info[2], '涨跌额': info[3], '涨跌幅': info[4], '最低': info[5], '最高': info[6], '成交量(手)': info[7], '成交金额(万)': info[8]}
df = df.append(column_dict, ignore_index = True)
df['日期'] = pd.to_datetime(df['日期'])
#df.index = pd.to_datetime(df['日期'])
return df

# eg
df_513130 = get_price('513130', '20190101', '20220121')

# 然后画图

结果

2021年以来
见参考链接

全部时间
见参考链接

结尾

摘录今天书里看到一句话

运气和交易有关吗?
交易和其他任何工作一样。你刻苦努力,付出时间和精力,你的运气自然就来了。我在首笔100手交易中非常幸运地成为赢家,但我为什么会有好运呢?因为之前我能一整天站在交易所内,不断观察学习,六个多月天天如此,从而形成和提升了我的市场感觉。机会一旦来临,我就不会迟疑,能立刻把握。机会和运气只留给有准备的人。

参考链接

https://mp.weixin.qq.com/s/pUBfuXdX_GQ-yXJxMPp6TA

12…9

Nonewood

90 日志
3 分类
59 标签
© 2024 Nonewood | Site words total count: 144.4k
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4