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


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

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






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

  • 相关阅读:
    Hadoop分布式文件系统:架构和设计
    分布式设计学习资料
    codeforces上一道贪心算法题
    优先队列实现n路归并算法O(n * lgK)
    LINUX 暂停、继续进程
    重叠(Overlapped)IO模型
    WSAEventSelect模型
    WSAEventSelect模型 应用实例,重写TCP服务器实例
    选择模型2
    第四章 数据抽象 《C++编程思想》
  • 原文地址:https://www.cnblogs.com/neoalvin/p/4906152.html
Copyright © 2011-2022 走看看