“\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 ...
随机推荐
- 【JVM】jstack和dump线程分析(2)
一:jstack jstack命令的语法格式: jstack <pid>.可以用jps查看java进程id.这里要注意的是:1. 不同的 JAVA虚机的线程 DUMP的创建方法和文件格式 ...
- spring BeanUtils.copyProperties只拷贝不为null的属性
在MVC的开发模式中经常需要将model与pojo的数据绑定,apache和spring的工具包中都有BeanUtils,使用其中的copyProperties方法可以非常方便的进行这些工作,但在实际 ...
- Eclipse_Package Presentation
Package Presentation ->Flat ->Hierarchical更常用
- MyBatis框架原理3:缓存
上一篇[MyBatis框架原理2:SqlSession运行过程][1]介绍了MyBatis的工作流程,其中涉及到了MyBatis缓存的使用,首先回顾一下工作流程图: 如果开启了二级缓存,数据查询执行过 ...
- 搜索框的测试checklist
一:简单搜索输入框测试用例1:不输入任何字符,点击搜索按钮,一般搜索出网站所有的信息 2:一般搜索输入框中的有文章显示,当鼠标点击时,文章消失 3:输入全角/半角中文字符(一个字符.超长字符.已经信息 ...
- C#学习笔记三(委托·lambda表达式和事件,字符串和正则表达式,集合,特殊的集合)
委托和事件的区别 序号 区别 委托 事件 1 是否可以使用=来赋值 是 否 2 是否可以在类外部进行调用 是 否 3 是否是一个类型 是 否,事件修饰的是一个对象 public delegate vo ...
- C#后台正则表达式
static Regex RegPhone = new Regex(@"^((1[34578][0-9]{1}))\d{8}"); static Regex RegN ...
- echats--》饼图 如何在环形中央设置 文字?
遇到一个需求,在环形图中央空白部分显示总数量. let data = { totalNum: "", data: [ { val ...
- 访问DataGridView的Rows报了OutOfIndexRangeException错误
DataGridView绑定了一个List<Entity>实体集合,在遍历DataGridView的每一行DataBoundItem时候,如果符合某个条件的话,则移除List<Ent ...
- HDU 1753 大明A+B (大正小数加法、字符串处理)
大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...