今天早上帮同事写了脚本,大致功能:从文本中读取域名,加密存储成按照自己定义的格式。但是一个简单的代码居然出现了错误。初始的代码如下:

# 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”爬坑记录的更多相关文章

  1. Redis中存字段key出现 \xef \xbb \xbf

    环境: java向redis中存数据用于重复判断,结果有一条记录居然去不了重复,用Redis DeskTop Manager 查看发现,有一个 key 中居然是这样的: 20190324157:\xE ...

  2. mybatis-generator 详细配置及使用,爬坑记录

    mybatis-generator 详细配置及使用,爬坑记录 提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 MySQL 8.0.13,调试没有问题. 如果失败,建议使用相同的项目结构, ...

  3. centos7安装Mysql爬坑记录

    centos7安装Mysql爬坑记录   查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装 ...

  4. elasticsearch 单节点搭建与爬坑记录

    elasticsearch 单节点搭建与爬坑记录   prepare   虚拟机或者云服务器(这里用的是阿里云ECS) linux---centos7 安装完毕的jdk 相应的安装包(在https:/ ...

  5. 03、Swagger2和Springmvc整合详细记录(爬坑记录)

    时间 内容 备注 2018年6月18日 基本使用 spirngmvc整合swagger2 开始之前这个系列博文基本是,在项目的使用中一些模块的内容记录,但是后期逐渐优化,不单单是整合内容. swagg ...

  6. vuex2.0.0爬坑记录 -- mutations的第一个参数state不能解构

    今天在学习vuex的过程中,遇到了一个很困扰人的问题,最终利用vuex的状态快照工具logger解决了问题. 问题是这样的,我在子组件中使用了mapState()函数来将状态映射至子组件中,使子组件能 ...

  7. JdbcTemplate的一次爬坑记录

    时隔三个多月,我终于想起我还有个博客,其实也不是忘了我这个博客,只是平时工作繁忙没时间去写博客,故今晚腾出时间来记录一下上次工作中遇到的一个问题,给园友们分享出来,以免入坑. 上个星期在工作中使用Jd ...

  8. mac M1 php扩展 xlswriter 编译安装爬坑记录

    电脑配置 MacBook Pro(14英寸,2021年) 系统版本 macOS Monterey 12.4 芯片 Apple M1 Pro PHP环境 MAMP Pro Version 6.6.1 ( ...

  9. Vue开发爬坑记录

    1.使用eslint代码检查时,常见的的错误: 1.1 Expected indentation of 0 spaces but found 1 前面的空格个数不对.应该不能有空格. 1.2 Stri ...

随机推荐

  1. servlet3.0无web.xml

    大家应该都已经知道spring 3.1对无web.xml式基于代码配置的servlet3.0应用.通过spring的api或是网络上高手们的博文,也一定很快就学会并且加到自己的应用中去了.PS:如果还 ...

  2. docker简单理解

    Docker是开源的一个基于轻量级虚拟化技术的容器引擎项目.它通过分层镜像标准化和内核虚拟化技术,使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的 ...

  3. 【转】Java压缩和解压文件工具类ZipUtil

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  4. CentOS 7下载

    CentOS 7官方下载地址:https://www.centos.org/download/ 转载https://blog.csdn.net/yxwmzouzou/article/details/7 ...

  5. golang defer 延后执行什么

    对于golang的defer,我们已经知道,defer定义的语句可以延后到函数返回时执行. 经常用在文件的关闭,锁的释放等场景中.而且defer定义的语句即使遇到panic也会执行.这样,可以执行必要 ...

  6. leetcode 198. House Robber 、 213. House Robber II 、337. House Robber III 、256. Paint House(lintcode 515) 、265. Paint House II(lintcode 516) 、276. Paint Fence(lintcode 514)

    House Robber:不能相邻,求能获得的最大值 House Robber II:不能相邻且第一个和最后一个不能同时取,求能获得的最大值 House Robber III:二叉树下的不能相邻,求能 ...

  7. springboot2.0+mycat实验读写分离

    声明:用户到达一定程度,架构就必须要考虑,因为在这个前提下,读写分离,尤为重要. 1.搭建mysql主从复制 https://www.cnblogs.com/ywjfx/p/10264383.html ...

  8. VMWare中Centos Minimal最小安装包安装后网络,ftp配置

    1.官网下载centos Minimal安装包,安装. 2.使用ip addr命令查看后没有ip地址显示. 3.点击WMWare的编辑->虚拟网络编辑->选择vmnet0(Bridged) ...

  9. java:LeakFilling(Hibernate)

    1.关系型数据库: Oracle / Mysql 数据持久化的技术: IO JDBC XML  ... 主流的持久层框架: Hibernate mybatis---->apache产品 JPA( ...

  10. golang基础学习-MongoDB使用

    1.系统环境 Golang:go version go1.10.3 darwin/amd64 OS:MacOS MongoDB: version: 3.4.4 2.Golang使用MongoDB 使用 ...