“\xef\xbb\xbf”爬坑记录
今天早上帮同事写了脚本,大致功能:从文本中读取域名,加密存储成按照自己定义的格式。但是一个简单的代码居然出现了错误。初始的代码如下:
# coding:utf-8 import hashlib
import base64 # 使用MD5加密字符串 def entry_md5(text):
md5_object = hashlib.md5()
md5_object.update(text)
test = md5_object.hexdigest().upper() return test def write_file(url, entry_code):
# 前五位
code = '[{}]'.format(entry_code)
# url加密
ob = 'v={}|t=w|a=k|'.format(url) encode = base64.b64encode(ob)
final_code = 'object="{}"'.format(encode)
with open('3.txt', 'a+') as f:
f.writelines(code + '\n' + final_code + '\n') with open('2.txt', 'r') as f:
for line in f.readlines(): line = line.strip()
line = line.lstrip() url_domain = line.split('.')
if len(url_domain) > 2:
fin_domain = url_domain[1]
else:
fin_domain = url_domain[0]
text2 = entry_md5(line.strip())
# 获取前五位数字 text3 = entry_md5(text2) text4 = text3[0:5] write_file(fin_domain, text4)
但是在同事那边验证失败了。起始文件我是用set(list)一个列表。但是在minergate这里出错了。通过对line输出

其中我已经对line两边去掉空格,结果在结果集中还是出现空格。一番折腾后,发现我在起始文件minergrate处于头部,会加入utf8编码。需要把编码去掉。
# coding:utf-8 import hashlib
import base64
import codecs # 使用MD5加密字符串 def entry_md5(text):
md5_object = hashlib.md5()
md5_object.update(text)
test = md5_object.hexdigest().upper() return test def write_file(url, entry_code):
# 前五位
code = '[{}]'.format(entry_code)
# url加密
ob = 'v={}|t=w|a=k|'.format(url) encode = base64.b64encode(ob)
final_code = 'object="{}"'.format(encode)
with open('3.txt', 'a+') as f:
f.writelines(code + '\n' + final_code + '\n') with open('2.txt', 'r') as f:
for line in f.readlines(): line = line.strip()
line = line.lstrip()
line = line.replace(codecs.BOM_UTF8, '')
url_domain = line.split('.')
if len(url_domain) > 2:
fin_domain = url_domain[1]
else:
fin_domain = url_domain[0]
text2 = entry_md5(line.strip())
# 获取前五位数字
if 'minergate' in line:
print type(line), len(line)
print line.split('minergate')
print len('minergate.com')
print line
text3 = entry_md5(text2)
print(text3)
text4 = text3[0:5]
print(text4)
#write_file(fin_domain, text4)
最终我们看到结果输出正常了。

“\xef\xbb\xbf”爬坑记录的更多相关文章
- Redis中存字段key出现 \xef \xbb \xbf
环境: java向redis中存数据用于重复判断,结果有一条记录居然去不了重复,用Redis DeskTop Manager 查看发现,有一个 key 中居然是这样的: 20190324157:\xE ...
- mybatis-generator 详细配置及使用,爬坑记录
mybatis-generator 详细配置及使用,爬坑记录 提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 MySQL 8.0.13,调试没有问题. 如果失败,建议使用相同的项目结构, ...
- centos7安装Mysql爬坑记录
centos7安装Mysql爬坑记录 查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装 ...
- elasticsearch 单节点搭建与爬坑记录
elasticsearch 单节点搭建与爬坑记录 prepare 虚拟机或者云服务器(这里用的是阿里云ECS) linux---centos7 安装完毕的jdk 相应的安装包(在https:/ ...
- 03、Swagger2和Springmvc整合详细记录(爬坑记录)
时间 内容 备注 2018年6月18日 基本使用 spirngmvc整合swagger2 开始之前这个系列博文基本是,在项目的使用中一些模块的内容记录,但是后期逐渐优化,不单单是整合内容. swagg ...
- vuex2.0.0爬坑记录 -- mutations的第一个参数state不能解构
今天在学习vuex的过程中,遇到了一个很困扰人的问题,最终利用vuex的状态快照工具logger解决了问题. 问题是这样的,我在子组件中使用了mapState()函数来将状态映射至子组件中,使子组件能 ...
- JdbcTemplate的一次爬坑记录
时隔三个多月,我终于想起我还有个博客,其实也不是忘了我这个博客,只是平时工作繁忙没时间去写博客,故今晚腾出时间来记录一下上次工作中遇到的一个问题,给园友们分享出来,以免入坑. 上个星期在工作中使用Jd ...
- mac M1 php扩展 xlswriter 编译安装爬坑记录
电脑配置 MacBook Pro(14英寸,2021年) 系统版本 macOS Monterey 12.4 芯片 Apple M1 Pro PHP环境 MAMP Pro Version 6.6.1 ( ...
- Vue开发爬坑记录
1.使用eslint代码检查时,常见的的错误: 1.1 Expected indentation of 0 spaces but found 1 前面的空格个数不对.应该不能有空格. 1.2 Stri ...
随机推荐
- 三、smarty--变量调节器(修改器)
变量调节器(修改器) 作用: 1. 从PHP中分配个模板的变量 2. 需要模板中对变量在输出前进行处理 3. 处理方式就是使用“函数” 4. 在smarty3中可以直接调用到PHP的函数 5. ...
- vue简单事件
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- MSTest/NUnit 单元测试 代码覆盖率试用 OpenCover 和ReportGenerator
VS自带是单元测试代码覆盖率(VS自带这个是最佳选择)需要企业版才有.很蛋疼...... 1.下载安装OpenCover 和ReportGenerator. 关于这2个是干啥的百度下.简单说就是可以分 ...
- vue问题一:触发接口
//在script中先引用 import api from './../../api/index' //vue文件方法中 写 del(index, row) { let self=this; // 传 ...
- Linux 的路由功能
目录 文章目录 目录 前文列表 路由器 Router 路由 Routing 静态路由与动态路由 通过路由实现的全网通信示例 Linux 作为路由器 route 指令 路由表项的类型 ip route ...
- windows 10 右键菜单 使用vscode打开 快捷键
呼出菜单栏(鼠标右键或快捷键shift+f10)之后按i 资料: 1.如何为windows 10添加右键context menu item https://stackoverflow.com/ques ...
- 阶段3 2.Spring_08.面向切面编程 AOP_3 spring基于XML的AOP-编写必要的代码
新建项目 先改打包方式 导包,就先导入这俩包的坐标 aspectjweaver为了解析切入点表达式 新建业务层接口 定义三个方法 看返回和参数的区别.为了把这三类方法表现出来,并不局限于方法干什么事 ...
- H5、原生app、混合开发三者比较
一.概念 a) H5:即Html5,接触过互联网的都知道html,所以很明显h5是html的第5次重大修改的一项超文本标记语言的标准协议. b) 原生:使用原生制作APP(Native app),即在 ...
- c++ 指针(二)
指针 (4)指针数组 #include <iostream> using namespace std; ; int main () { , , }; ; i < MAX; i++) ...
- Unity旋转问题的总结
1.物体的直接旋转 transform.Rotate();这个函数是在当前状态下网某个方向旋转.并且这里可以设置为世界空间或者自身空间. transform.rotation;这里可以通过直接定义一个 ...