python爬虫过程中遇到的问题_python爬虫过程中出现的问题汇总-Go语言中文社区

1.出现 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 7: ordinal not in range(128)

原因:混淆了 python2 里边的 str 和 unicode 数据类型

解决办法:在出错的脚本前加上以下代码:

import sys

reload(sys)

sys.setdefaultencoding('utf8')

或者是:

import sys

if sys.getdefaultencoding()!='utf-8':

reload(sys)

sys.setdefaultendcoding('utf-8')

2.出现 SyntaxError: Non-ASCII character 'xe8' in file

原因:Python的默认编码文件是用的ASCII码

解决:只要在文件开头加入#-*- coding: UTF-8 -*-或者 #coding=utf-8就可以了

3.利用githup上的爬虫爬取裁判文书网时,在文书id的解密过程中出现了如下问题

04e8480d6849b6df91236c286224072a.png

异常产生于:

def decrypt_id(RunEval, id):

"""

docid解密

"""

js = ctx2.call("GetJs", RunEval)

print js

js_objs = js.split(";;")

js1 = js_objs[0] + ';'

js2 = re.findall(r"_[_][_]((.*?))();", js_objs[1])[0]

key = ctx2.call("EvalKey", js1, js2)

key = re.findall(r""([0-9a-z]{32})"", key)[0]

docid = ctx2.call("DecryptDocID", key, id)

return docid

注意:安装node.js后还需要更换cnpm的镜像(执行下面这条语句)

npm install -g cnpm --registry=https://registry.npm.taobao.org

文书id解密过程:

首先,由获得的runEval得到下图:

e7b94e62f7a15ff6d033be835f5a0552.png

提取com.str._KEY的值,传入到js文件中的com.str._KEY

之后,对加密的id进行解密

var unzipid=unzip(id);

var realid=com.str.Decrypt(unzipid);

return realid;

最终的返回值即文书id明文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值