zoukankan      html  css  js  c++  java
  • Python+MySQL获取PhishTank的钓鱼网站列表作业笔记

    仔细阅读PhishTank官方网站的开发者文档,了解API调用方法

    1.注册账户,创建application并获取app_key

    2.根据http://data.phishtank.com/data/<your app key>/online-valid.xml下载数据库导出文件.xml


    于是便将问题转化为python解析xml大文件

    Then  分别用xml.dom和xml.sax尝试去解析文档,均遇到相同问题:

    xml.parsers.expat.ExpatError: not well-formed (invalid token): line 16519, column 83

    xml.sax._exceptions.SAXParseException: online-valid.xml:16519:83: not well-formed (invalid token)

    显然根据提示我们知道是xml文件中存在非法字符


    接下来要解决的问题就是如何处理xml中的非法字符了(开启疯狂BG模式~~~

    几番B搜无果,最后在G搜到类似的内容:

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
     
    import string
    import xml.dom.minidom
     
    def parse_xml(file_path):
        """
        Handle xml file with invalid character
        [input] : path of the xml file
        [output] : xml.dom.minidom.Document instance
        """
        try:
            xmldoc = xml.dom.minidom.parse(file_path)
        except:
            f = file(file_path)
            s = f.read()
            f.close()
     
            ss = s.translate(None, string.printable)
            s = s.translate(None, ss)
     
            xmldoc = xml.dom.minidom.parseString(s)
        return xmldoc
     
    if __name__ == '__main__':
        pass


    以纯文本当时读取文件,然后用字符串来处理,就能得到非法字符完全剔除的的结果了

    于是作业也就可以愉快的进行下去啦






    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    网络叠加路由叠加小型网络解决方案
    分辨率类[置顶] c# winform窗口自适应各种分辨率类
    vista dbgview
    web 设置日期格式(
    ChangeServiceConfig2设置SERVICE_CONFIG_FAILURE_ACTIONS
    设置默认调试器 (vc)
    C#的多线程机制初探(转)
    符号(pdb)
    GetModuleFileNameEx
    ClearDirectory 删除目录
  • 原文地址:https://www.cnblogs.com/neoalvin/p/4906152.html
Copyright © 2011-2022 走看看