最新文章

2021年10月26日,作者: 黄兵

MySQL 删除多行

下面使用 DELETE IN 的方式删除多上数据:id_tuple = tuple(id_list) delete_remote_sql = f"DELETE FROM access_log WHERE id IN {id_tuple};"首先将 id_list 转换成 tuple,之后再删除。参考资料:1、MySQL delete multiple rows in one query cond...

Python 之时间和时间戳转换

2021年10月26日 ,作者: 黄兵

时间和时间戳的概念 首先我们了解两个基本的概念,时间和时间戳。 时间,我们在本文中更多的讲一个狭义的概念,表示某一时刻的值。 时间戳,unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。 时间转换为时间戳 具体需求 将形如2017-09-20 22:28:54的时间转换为时间戳 实现过程 利用strptime()函数将时间转换为时间数组 利用...

SQLAlchemy filter None

2021年10月19日 ,作者: 黄兵

在使用 SQLAlchemy 查询值为 NULL 的时候,写法如下:# 不存在 city_idget_ip_info = IPPublicAddressInfo.query.filter_by(ip_crawler_country_id=get_country_id) \ .filter_by(ip_crawler_region_id=get_region_id) \ .filter(...

SQLAlchemy 多行更新

2021年10月19日 ,作者: 黄兵

使用以下未作优化的方式更新:for row in Uninstall.query: # all() is extra row.status = new_status Session.commit()以下方式对所有行经行一次查询之后,更新所有:Uninstall.query.update({Uninstall.status: new_status}) Session.commit(...

Python Web API 错误消息示例

2021年10月19日 ,作者: 黄兵

最近使用 Python Flask 框架编写 API 端点,如果错误发生了,如何向调用 API 的人显示错误消息是一件非常有必要的事情。除了 HTTP 规范中的 1 - 5 开头的状态码,我们还需要向客户显示详细的错误消息,以利于排查错误。下面是通过 Flask API 端点向客户发出错误消息的示例:response = { "code": 2014, "message": '当前 C...

爬虫系列:数据采集

2021年10月19日 ,作者: 黄兵

在上一期,主要讲解了:连接网站与解析 HTML上一期只是一个简单的例子,获取了网站的一小部分内容,本期开始讲解需要获取网站的所有文章列表。在开始以前,还是要提醒大家:在网络爬虫的时候,你必须非常谨慎地考虑需要消耗多少网络流量,还要尽力思考能不能让采集目标的服务器负载更低一点。本次示例采集The ScrapingBee Blog博客的文章。在做数据采集以前,对网站经行分析,看看代码结构。需要采集的部...

IPv6 地址最大长度

2021年10月19日 ,作者: 黄兵

下面是一个 IPv6 地址的示例:0000:0000:0000:0000:0000:0000:0000:0000长度为:8 * 4 + 7 = 398 组 4 位数字,:中间有 7 位。但是,如果您有一个IPv4 映射的 IPv6 地址,则后两组可以写在以 10 分隔的基数中.,例如。[::ffff:192.168.100.228]. 完整地写出来:0000:0000:0000:0000:0000...

Necro Python 僵尸网络开始瞄准可视化工具 DVR

2021年10月15日 ,作者: 黄兵

安全研究人员发现了 Necro Python 僵尸网络的迹象,该网络针对 Visual Tools DVR 系统中的漏洞,以在受感染的系统上安装门罗币矿工。Necro Python 于今年 1 月首次发现,也被追踪为 N3Cr0m0rPh、FreakOut、Python.IRCBot,并因试图利用多个已知漏洞而闻名。根据瞻博网络威胁实验室的警告,9 月下旬,僵尸网络在其武器库中添加了一个针对 Vi...