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

python爬虫过程中出现的问题汇总


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的解密过程中出现了如下问题

   

  异常产生于:

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环境,需要安装node.js,安装教程参照:https://www.cnblogs.com/zhouyu2017/p/6485265.html

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

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

 爬虫项目连接:https://github.com/sixs/wenshu_spider

 文书id解密过程: 

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

 

 

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

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

  

var unzipid=unzip(id);
var realid=com.str.Decrypt(unzipid);
return realid;

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

 

 

 

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/MonsterZw/article/details/82744646
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 22:37:14
  • 阅读 ( 1600 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢