评论

收藏

[PHP] 未闻Code·知识星球周报总结(四)

开发技术 开发技术 发布于:2021-12-30 14:33 | 阅读数:283 | 评论:0

知识星球周报总结是对未闻Code·知识星球上的每周内容进行汇总,完全干货!


一、知识科普
之前知识星球成员中有人询问了个关于pandas导出日期到Excel相关的问题,比如说设置的日期是今天(datetime.date.today()),导出之后是字符串格式,需要每天点一下分列才能变成正常的日期格式,如果是用pd.DatetimeIndex或者pd.to_datetime转换格式,又发现格式没错,但是后面还有一段00:00:00,这种情况如何解决呢?
方法1:excel替换功能,把所有00:00:00替换成空。
方法2:日期格式设置可以使用pd.ExcelWrite(),日期格式没显示全主要是Excel表默认的宽度不够,可以参考如下:
with pd.ExcelWriter(
"path_to_file.xlsx",
date_format="YYYY-MM-DD",
datetime_format="YYYY-MM-DD HH:MM:SS"
) as writer:
workbook = writer.book
df.to_excel(writer, sheet_name='Sheet1')
sheet = writer.sheets['Sheet1']
# 设置A-E宽度
sheet.set_column('A:E', width=50)
二、问题解答


1
请教个关于asyncio限制并发数的问题,在aiohttp中有一个方法TCPConnector,跟Semaphore的效果是不是一样的呢?
点击空白处查看答案
TCPConnector不是用来限制并发数的。能实现semaphore只是它的附加效果而已。它只是用来设置一些TCP参数相关的配置。
2
星主,有通用的捕获程序异常并提醒的工具或软件或方法推荐吗?简单而言,在Linux服务器上部署了不少程序,没有精力为每个程序都加入监测并提醒的功能,有没有一些通用的工具、软件、方法可以监测到程序运行出错并发送提醒。
点击空白处查看答案
你想判断哪种类型的错误呢?是出错了但程序还能运行,还是出错了导致程序崩溃?如果是前者,你可以通过程序打日志,报警系统监控日志来发现。如果是后者,你可以通过监控程序进程还在不在来实现。
3
最近知道了逻辑外键的概念,请问是不是就是说在程序中进行约束呢?查了一下似乎是要在ORM(fastapi+sqlalchemy)中指定`db_constraint=False`,但这样的话怎么能保证性能和约束呢?翻了文章似乎都没有详细说这块的
点击空白处查看答案
我在平常的工作中不用外键,无论是实体外键还是逻辑外键。我在网上搜索了一下,发现很少有文章提到逻辑外键。所以如果你对他不熟悉的话,还是别用了,否则遇到问题你都搜索不出解决方案。
4
请教一下,在pytest里面使用了sqlalchemy操作数据库,但是有个痛点就是每次连接都要create_engine,session一次,有没有什么方法可以在某个地方一次创建后就都可以使用不用每次都创建。想过在前置后置条件中把这个事情干了,但是有些封装的逻辑不是在用例里面没有前置后置条件,是一个公共函数。这种情况怎么搞呢,谢谢。
点击空白处查看答案
你知不知道Python的import倒入模块的功能可以用来做单例模式?​​一日一技:Python 下面最简单的单例模式写法​​
5
有个问题想请教一下,目前在给公司写一个派单程序(类似爬虫的)。现在需要对日志进行转存,想法是利用kafka跟ELK。想请问一下是不是将原本保存在本地的日志传递给kafka后,再让kafka推送到Logstash集群处理就可以
点击空白处查看答案
 
应该说不是kafka推日志,而是logstash去kafka拉日志。拉到时候发送给ES。如果你数据量不大,甚至可以绕过logstash,Python读kafka然后写ES。

6
接问题5,数据量应该不大,目前一天下来一个log文件大概5m左右。
点击空白处查看答案
这么小的数据量,直接Python读kafka写es就可以了
7
我想问下,如果想实现一个转发socket的,需要用到哪些技术,比如跟代理隧道一样的,或者有什么现成的软件吗?  
点击空白处查看答案
 ss就是现成的。

8
请教一下,怎么实现控制scrapy 每秒的并发数 例如:1秒钟5个并发
点击空白处查看答案
你看settings.py文件,有3个参数
CONCURRENT_REQUESTS,CONCURRENT_REQUESTS_PER_DOMAIN,CONCURRENT_REQUESTS_PER_DOMAIN
给他们全部赋值为5。就可以了。
9
fastapi部署一般怎么操作?谢谢
点击空白处查看答案
uvicorn server:app —host 0.0.0.0 —port 8080
10
这个网站点击上面查询需要JS加密的,只能pyppeteer点击查询后返回数据如果 用pyppeteer怎么能拿到这个接口响应返回的JSON呢,页面显示出来的数据没有我需要的,只有这个返回的JSON里有,并且这个接口是在其中一个frame页面里
点击空白处查看答案
这种情况,pyppeteer直接拿不到。但是你可以增加一个中间人。用mitmproxy来监控流量并筛选。我的爬虫书里面有mitmproxy配合selenium的例子,可以看一下。




END


DSC0000.png

一二线大厂在职员工

十多年码龄的编程老鸟

国内外高校在读学生

中小学刚刚入门的新人

“未闻 Code技术交流群”等你来!




关注下面的标签,发现更多相似文章