确定一个域是否在 Alexa 或 Cisco 前一百万域列表中。
项目描述
===============================
一百万
================== =============
.. 图片:: https://img.shields.io/pypi/v/onemillion.svg
:target: https://pypi.python.org/pypi/一百万
.. 图片:: https://img.shields.io/travis/fhightower/onemillion.svg
:target: https://travis-ci.org/fhightower/onemillion
.. 图片:: https://codecov。 io/gh/fhightower/onemillion/branch/master/graph/badge.svg
:target: https://codecov.io/gh/fhightower/onemillion
.. image:: https://api.codacy.com/project/徽章/等级/e47d712af7e24ac493e76392d1613e82
:alt: Codacy 徽章
:target: https://www.codacy.com/app/fhightower/onemillion
.. 图像:: https://readthedocs.org/projects/onemillion/badge/?version=latest
:target: https://onemillion.readthedocs.io/en/latest/?badge=latest
:alt: 文档状态
。 .image:: https://pyup.io/repos/github/fhightower/onemillion/shield.svg
:target: https://pyup.io/repos/github/fhightower/onemillion/
:alt: Updates
判断一个域在 Alexa 或 Cisco 前一百万域名列表中。
文档可在此处获得:`https://onemillion.readthedocs.io <https://onemillion.readthedocs.io>`_。
安装
============
推荐的安装方式是使用`pip <https://pypi.python.org/pypi/pip/>`_:
``pip install onemillion``
或者,您可以按如下方式安装 onemillion:
.. code-block:: shell
git clone https://github.com/fhightower/onemillion.git && cd onemillion;
python setup.py install --user;
用法
=====
使用默认设置时,在初始化 onemillion 的实例并调用 ``domain_in_million`` 函数时将执行以下步骤:
1. 检查域列表今天是否已更新。
2a. 如果它们今天已更新,请在列表中查找给定域并停止。
2b。如果今天没有更新列表,请发出“HEAD”请求并检查当前 etag 与先前的 etag(本地存储)以查看列表是否已更新。
3a。如果 etag 相同(意味着列表尚未更新),请在列表中查找给定域并停止。
3b。如果 etag 不同(意味着列表已更新),请请求列表,解压缩它们,并将它们保存在默认缓存位置(``~/.onemillion``)。
4. 现在列表已更新,在列表中搜索给定域。
默认用法~Hello World!
----------------------------
通过 Python
^^^^^^^^^^
一百万的默认用法如下:
. . 代码块:: python
import onemillion
o = onemillion.OneMillion()
o.domain_in_million("google.com") # 1
o.domain_in_million("gaagle.com") # 无
使用上述方法,alexa 和 cisco 前一百万的域列表以及一些元数据将存储在主目录中:``~/.onemillion``。
通过命令行^^^^^^^^^^^^^^^ 通过命令行默认使用
onemillion
如下:
.. code-block:: shell
onemillion google.com
与在 a 中使用 onemillion 时一样python 脚本,alexa 和 cisco 前一百万域列表以及一些元数据将存储在主目录中:`~/.onemillion`。
没有缓存
----------
通过 Python
^^^^^^^^^^
如果你不想缓存域列表,你可以通过设置 ``cache=False` 告诉 onemillion 不要缓存任何东西` 在初始化时,如下所示:
.. code-block:: python
import onemillion
# 不缓存任何东西
o = onemillion.OneMillion(cache=False)
o.domain_in_million("google.com") # 1
o.domain_in_million("gaagle.com") #
无如果您只进行一两次调用或如果存储空间是一个问题,上述代码很好,但建议您在可行的情况下缓存列表,以限制域列表的流量。
**注意:** 目前,“无缓存”配置将引发错误。这将在 `issue #12 <https://github.com/fhightower/onemillion/issues/12>`_ 修复后更新和处理。
通过命令行
^^^^^^^^^^^^^^^^
通过命令行,原理同上:
.. code-block:: shell
一百万 google.com --no-cache
自定义缓存位置
---------
通过 Python
^^^^^^^^^^
如果您正在缓存列表,但想将它们缓存在主目录以外的位置,您可以通过在初始化 onemillion 时设置 ``cache_location`` 参数来指定自定义缓存位置,如下所示:
.. code-block:: python
import onemillion
# 缓存数据到特定路径
o = onemillion.OneMillion(cache_location=<YOUR_PATH_HERE>)
o.domain_in_million("google.com") # 1
o.domain_in_million("gaagle.com") # None
这将缓存您提供的路径中的域列表.
通过命令行
^^^^^^^^^^^^^^^^
通过命令行,原理同上:
.. code-block:: shell
onemillion google.com --cache_location ~/.cache/onemillion/
或
.. code-block:: shell
onemillion google.com -l ~/.cache /onemillion/
无更新
---------
通过 Python
^^^^^^^^^^
如果您已经运行 onemillion 并缓存了域列表,但不想继续更新它们,您可以在初始化时指定 ``update=False`` 如下所示:
.. code-block:: python
import onemillion
# 不更新缓存内容
o = onemillion.OneMillion(update=False)
o.domain_in_million("google.com") # 1
o.domain_in_million("gaagle.com") # 无
请注意,默认情况下,一百万将在发出任何请求之前检查它今天是否已经更新了域列表。因此,一百万默认情况下会负责任地和智能地处理更新,并且很少有这种配置(使用 ``update=False``)是必要的。尽管如此......它就在那里,欢迎您使用它。
通过命令行
^^^^^^^^^^^^^^^^
通过命令行,原理同上:
.. code-block:: shell
onemillion google.com --no-update
Credits
==== ===
这个包是用 Cookiecutter_ 和 `fhightower/python-project-template`_ 创建的。
.. _Cookiecutter:https://github.com/audreyr/cookiecutter
.. _`fhightower/python-project-template`: https://github.com/fhightower/python-project-template
=======
历史
=======
0.5.0 (2017-08 -12)
------------------
* 添加命令行功能
0.4.5 (2017-05-09)
-------------- ----
* 返回给定主机的排名,而不仅仅是一个布尔值
* 在测试
0.4.1 (2017-04-25)时添加(更好的)代码覆盖率
---------------- --
* 改进评论和文档
* 将列表更新与域检查
分开 0.4.0 (2017-04-12)
------------------
* 改进测试
0.1.0 (2017-04-04)
------------------
* PyPI 上的第一个版本。
一百万
================== =============
.. 图片:: https://img.shields.io/pypi/v/onemillion.svg
:target: https://pypi.python.org/pypi/一百万
.. 图片:: https://img.shields.io/travis/fhightower/onemillion.svg
:target: https://travis-ci.org/fhightower/onemillion
.. 图片:: https://codecov。 io/gh/fhightower/onemillion/branch/master/graph/badge.svg
:target: https://codecov.io/gh/fhightower/onemillion
.. image:: https://api.codacy.com/project/徽章/等级/e47d712af7e24ac493e76392d1613e82
:alt: Codacy 徽章
:target: https://www.codacy.com/app/fhightower/onemillion
.. 图像:: https://readthedocs.org/projects/onemillion/badge/?version=latest
:target: https://onemillion.readthedocs.io/en/latest/?badge=latest
:alt: 文档状态
。 .image:: https://pyup.io/repos/github/fhightower/onemillion/shield.svg
:target: https://pyup.io/repos/github/fhightower/onemillion/
:alt: Updates
判断一个域在 Alexa 或 Cisco 前一百万域名列表中。
文档可在此处获得:`https://onemillion.readthedocs.io <https://onemillion.readthedocs.io>`_。
安装
============
推荐的安装方式是使用`pip <https://pypi.python.org/pypi/pip/>`_:
``pip install onemillion``
或者,您可以按如下方式安装 onemillion:
.. code-block:: shell
git clone https://github.com/fhightower/onemillion.git && cd onemillion;
python setup.py install --user;
用法
=====
使用默认设置时,在初始化 onemillion 的实例并调用 ``domain_in_million`` 函数时将执行以下步骤:
1. 检查域列表今天是否已更新。
2a. 如果它们今天已更新,请在列表中查找给定域并停止。
2b。如果今天没有更新列表,请发出“HEAD”请求并检查当前 etag 与先前的 etag(本地存储)以查看列表是否已更新。
3a。如果 etag 相同(意味着列表尚未更新),请在列表中查找给定域并停止。
3b。如果 etag 不同(意味着列表已更新),请请求列表,解压缩它们,并将它们保存在默认缓存位置(``~/.onemillion``)。
4. 现在列表已更新,在列表中搜索给定域。
默认用法~Hello World!
----------------------------
通过 Python
^^^^^^^^^^
一百万的默认用法如下:
. . 代码块:: python
import onemillion
o = onemillion.OneMillion()
o.domain_in_million("google.com") # 1
o.domain_in_million("gaagle.com") # 无
使用上述方法,alexa 和 cisco 前一百万的域列表以及一些元数据将存储在主目录中:``~/.onemillion``。
通过命令行^^^^^^^^^^^^^^^ 通过命令行默认使用
onemillion
如下:
.. code-block:: shell
onemillion google.com
与在 a 中使用 onemillion 时一样python 脚本,alexa 和 cisco 前一百万域列表以及一些元数据将存储在主目录中:`~/.onemillion`。
没有缓存
----------
通过 Python
^^^^^^^^^^
如果你不想缓存域列表,你可以通过设置 ``cache=False` 告诉 onemillion 不要缓存任何东西` 在初始化时,如下所示:
.. code-block:: python
import onemillion
# 不缓存任何东西
o = onemillion.OneMillion(cache=False)
o.domain_in_million("google.com") # 1
o.domain_in_million("gaagle.com") #
无如果您只进行一两次调用或如果存储空间是一个问题,上述代码很好,但建议您在可行的情况下缓存列表,以限制域列表的流量。
**注意:** 目前,“无缓存”配置将引发错误。这将在 `issue #12 <https://github.com/fhightower/onemillion/issues/12>`_ 修复后更新和处理。
通过命令行
^^^^^^^^^^^^^^^^
通过命令行,原理同上:
.. code-block:: shell
一百万 google.com --no-cache
自定义缓存位置
---------
通过 Python
^^^^^^^^^^
如果您正在缓存列表,但想将它们缓存在主目录以外的位置,您可以通过在初始化 onemillion 时设置 ``cache_location`` 参数来指定自定义缓存位置,如下所示:
.. code-block:: python
import onemillion
# 缓存数据到特定路径
o = onemillion.OneMillion(cache_location=<YOUR_PATH_HERE>)
o.domain_in_million("google.com") # 1
o.domain_in_million("gaagle.com") # None
这将缓存您提供的路径中的域列表.
通过命令行
^^^^^^^^^^^^^^^^
通过命令行,原理同上:
.. code-block:: shell
onemillion google.com --cache_location ~/.cache/onemillion/
或
.. code-block:: shell
onemillion google.com -l ~/.cache /onemillion/
无更新
---------
通过 Python
^^^^^^^^^^
如果您已经运行 onemillion 并缓存了域列表,但不想继续更新它们,您可以在初始化时指定 ``update=False`` 如下所示:
.. code-block:: python
import onemillion
# 不更新缓存内容
o = onemillion.OneMillion(update=False)
o.domain_in_million("google.com") # 1
o.domain_in_million("gaagle.com") # 无
请注意,默认情况下,一百万将在发出任何请求之前检查它今天是否已经更新了域列表。因此,一百万默认情况下会负责任地和智能地处理更新,并且很少有这种配置(使用 ``update=False``)是必要的。尽管如此......它就在那里,欢迎您使用它。
通过命令行
^^^^^^^^^^^^^^^^
通过命令行,原理同上:
.. code-block:: shell
onemillion google.com --no-update
Credits
==== ===
这个包是用 Cookiecutter_ 和 `fhightower/python-project-template`_ 创建的。
.. _Cookiecutter:https://github.com/audreyr/cookiecutter
.. _`fhightower/python-project-template`: https://github.com/fhightower/python-project-template
=======
历史
=======
0.5.0 (2017-08 -12)
------------------
* 添加命令行功能
0.4.5 (2017-05-09)
-------------- ----
* 返回给定主机的排名,而不仅仅是一个布尔值
* 在测试
0.4.1 (2017-04-25)时添加(更好的)代码覆盖率
---------------- --
* 改进评论和文档
* 将列表更新与域检查
分开 0.4.0 (2017-04-12)
------------------
* 改进测试
0.1.0 (2017-04-04)
------------------
* PyPI 上的第一个版本。