2016-03-16 37 views
1

这实际上是一个用python编写的简单脚本,我可以在Linux上正常运行它。但是当我将它移动到Windows时,出现了一个奇怪的错误。我希望得到一些帮助。在python 2.7上使用pyshark遇到lxml.etree.XMLSyntaxError

运行代码之前,我已经为环境做一些准备工作:
1.安装Microsoft Visual C++编译器Python 2.7版
2.安装Python 2.7.11
3. PIP安装pyinstaller
4。 easy_install pyshark
下面是我的代码的一部分。

# -*- coding: utf-8 -*- 
from __future__ import print_function 
import pyshark 
import lxml 
import os 

def analysis_method(file_name): 
    cap = pyshark.FileCapture(input_file=file_name) 
    for packet in cap: 
     if hasattr(packet, "http"): 
      http_layer = packet["http"] 

下面是错误信息:
回溯(最近通话最后一个):
文件 “packet_offline_analysis.py” 36行,在analysis_method
为分组上限:
文件“C: \ Python27 \ lib \ site-packages \ pyshark-0.3.6.1-py2.7.egg \ pyshark \ capture \ capture.py“,第173行,在_packets_from_tshark_sync中
self._get_packet_from_stream(tshark_process.stdout,data,psml_structure = psml_structure ))
文件“C:\ Python27 \ lib \ site-packages \ trollius-1.0.4-py 2.7-win32.egg \ trollius \ base_events.py“,第300行,在run_until_complete中
return future.result()
文件”C:\ Python27 \ lib \ site-packages \ trollius-1.0.4-py2.7 -win32.egg \ trollius \ futures.py“,第287行,结果
raise self._exception
lxml.etree.XMLSyntaxError:输入不正确UTF-8,指示编码!
字节:0xD6 0xD0 0xB9 0xFA,第6行,第58列

回答

0

卸载您的中文版Wireshark,并安装英文版的Wireshark。 然后问题就解决了。