{ "info": { "author": "fate0", "author_email": "fate0@fatezero.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# webanalyzer\n\n[![PyPI](https://img.shields.io/pypi/v/webanalyzer.svg)](https://pypi.python.org/pypi/webanalyzer)\n\n\n## \u5b89\u88c5\n\n```sh\npip install -U webanalyzer\n```\n\n## \u4f7f\u7528\n\n### \u547d\u4ee4\u884c\n\n\u7b2c\u4e00\u6b21\u8fd0\u884c\u7a0b\u5e8f\u5fc5\u987b\u5148\u4e0b\u8f7d\u6307\u7eb9\u89c4\u5219\n``` sh\n[*] webanalyzer --update -d /path/to/rules\n```\n\n\u4e5f\u53ef\u4ee5\u4f7f\u7528 git \u81ea\u884c\u4e0b\u8f7d\u89c4\u5219\n``` sh\n[*] git clone https://github.com/webanalyzer/rules.git /path/to/rules\n```\n\n\u4f7f\u7528\u65b9\u6cd5:\n\n``` sh\n[*] webanalyzer --help\nUsage: webanalyzer [OPTIONS]\n\nOptions:\n -u, --url TEXT Target [required]\n -d, --directory TEXT Rules directory, default ./rules\n -a, --aggression INTEGER RANGE Aggression mode, default 0\n -U, --user-agent TEXT Custom user agent\n -H, --header TEXT Pass custom header LINE to serve\n -v, --verbose INTEGER RANGE Verbose level, default 2\n -r, --rule TEXT Specify rule\n --disallow-redirect Disallow redirect\n --list-rules List rules\n --update Update rules\n --version Show the version and exit.\n --help Show this message and exit.\n```\n\n\u4f8b\u5b50:\n\n```sh\n[*] webanalyzer -u \"http://blog.fatezero.org\" -d path/to/rules\n[\n {\n \"name\": \"Fastly\",\n \"origin\": \"wappalyzer\"\n },\n {\n \"name\": \"Hexo\",\n \"origin\": \"wappalyzer\",\n \"version\": \"3.8.0\"\n },\n {\n \"name\": \"Varnish\",\n \"origin\": \"wappalyzer\"\n },\n {\n \"name\": \"GitHub Pages\",\n \"origin\": \"wappalyzer\"\n },\n {\n \"name\": \"Ruby on Rails\",\n \"origin\": \"implies\"\n },\n {\n \"name\": \"Ruby\",\n \"origin\": \"implies\"\n }\n]\n```\n\n\u4f7f\u7528\u8def\u5f84\u6307\u5b9a\u67d0\u4e2a rule\n``` sh\n[*] webanalyzer -u \"http://blog.fatezero.org\" -p /path/to/hexo.json\n{\n \"name\": \"Hexo\",\n \"origin\": \"test\",\n \"version\": \"3.8.0\"\n}\n```\n\n### \u7c7b\u5e93\n\n\u4f5c\u4e3a\u7c7b\u5e93\u4f7f\u7528\n\n``` python\nimport webanalyzer\n\n# \u521d\u59cb\u5316\nw = webanalyzer.WebAnalyzer()\n\n# \u8bbe\u7f6e\u81ea\u5b9a\u4e49 headers\nw.headers = {\n \"User-Agent\": \"custom ua\",\n \"header-key\": \"header-value\"\n}\n\n# \u662f\u5426\u5141\u8bb8\u8df3\u8f6c\nw.allow_redirect = True\n\n# aggression \u6a21\u5f0f\u7ea7\u522b\nw.aggression = 0\n\n# \u8bbe\u7f6e requests timeout \u65f6\u95f4\nw.timeout = 30\n\n# \u8bbe\u7f6e rules \u8def\u5f84\nw.rule_dir = \"rules\"\n\n# \u4e0b\u8f7d\u6216\u66f4\u65b0\u67d0\u4e2a\u8def\u5f84\u4e0b\u7684 rules\nif w.update_rules():\n print(\"update rules successful\")\n\n# \u91cd\u65b0\u52a0\u8f7d rules\nn = w.reload_rules()\nprint(\"reload %d rules\" % n)\n\n# \u83b7\u53d6\u6240\u6709 rules\nr = w.list_rules()\nprint(\"list %d rules\" % n)\n\n# \u4f7f\u7528\u67d0\u4e2a rule \u8fdb\u884c\u68c0\u6d4b\nr = w.test_rule(\"http://blog.fatezero.org\", \"rules/wappalyzer/hexo.json\")\nprint(r)\n\n# \u4f7f\u7528\u6240\u6709 rules \u8fdb\u884c\u68c0\u6d4b\uff0c\u9ed8\u8ba4\u4f1a\u91cd\u65b0 reload rules\nr = w.start(\"http://blog.fatezero.org\", reload=False)\nprint(r)\n```\n\n## Q & A\n\n* \u548c WhatWeb\u3001Wappalyzer \u7684\u533a\u522b\uff1f\n\nWhatWeb \u7684\u89c4\u5219\u4f7f\u7528 ruby \u7f16\u5199\uff0c\u5728\u89c4\u5219\u65b9\u9762\uff0c\u5176\u4ed6\u7f16\u7a0b\u8bed\u8a00\u5f88\u96be\u590d\u7528\uff0c\u4e5f\u53ea\u80fd\u901a\u8fc7\u5b50\u8fdb\u7a0b\u7684\u65b9\u5f0f\u8c03\u7528 WhatWeb\u3002\nWappalyzer \u66f4\u591a\u7684\u4f5c\u4e3a\u4e00\u4e2a\u6d4f\u89c8\u5668\u63d2\u4ef6\u4f7f\u7528\u3002\n\n* \u4e3a\u4ec0\u4e48\u53ea\u652f\u6301 Python3.6 \u4ee5\u53ca\u4ee5\u4e0a\u7684 Python \u7248\u672c\uff1f\n\n\u56e0\u4e3a\u6709\u4e9b\u6b63\u5219\u89c4\u5219\u4f7f\u7528\u4e86 `(?-flag:...)` \u8fd9\u6837\u7684\u5199\u6cd5\uff0c\u7136\u800c\u5728\n[https://docs.python.org/3/whatsnew/3.6.html#re](https://docs.python.org/3/whatsnew/3.6.html#re)\n\u624d\u5f00\u59cb\u652f\u6301\u3002\n\n## \u5f15\u7528\n\n* [rules](https://github.com/webanalyzer/rules)\n* [webanalyzer.go](https://github.com/webanalyzer/webanalyzer.go)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/webanalyzer/webanalyzer.py", "keywords": "webanalyzer", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "webanalyzer", "package_url": "https://pypi.org/project/webanalyzer/", "platform": "", "project_url": "https://pypi.org/project/webanalyzer/", "project_urls": { "Homepage": "https://github.com/webanalyzer/webanalyzer.py" }, "release_url": "https://pypi.org/project/webanalyzer/2019.8.22/", "requires_dist": null, "requires_python": "", "summary": "", "version": "2019.8.22" }, "last_serial": 5715787, "releases": { "2019.5.7": [ { "comment_text": "", "digests": { "md5": "70d995a7c0259fc131074537ec992e4d", "sha256": "7934ab63b74459d522d7fec34ea178250dca3a94c95d429ecfd5c960bb13366a" }, "downloads": -1, "filename": "webanalyzer-2019.5.7.tar.gz", "has_sig": false, "md5_digest": "70d995a7c0259fc131074537ec992e4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 487987, "upload_time": "2019-05-06T14:24:00", "url": "https://files.pythonhosted.org/packages/ec/cf/1e84167ef0c19b1d64040305fdfb678fab999b88784bbcd46bd826af632c/webanalyzer-2019.5.7.tar.gz" } ], "2019.8.17": [ { "comment_text": "", "digests": { "md5": "3e6e2f2e54a60e1b5cb375636660d876", "sha256": "85cf1bb52aeea9049e56d09736a2d29b8eda71aa3ba7d290932271a2574395bb" }, "downloads": -1, "filename": "webanalyzer-2019.8.17.tar.gz", "has_sig": false, "md5_digest": "3e6e2f2e54a60e1b5cb375636660d876", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15343, "upload_time": "2019-08-18T08:10:09", "url": "https://files.pythonhosted.org/packages/96/98/2cef65b9758314f7b4e2752f2a22671fd7855e8f7ad859558f12a14a01b0/webanalyzer-2019.8.17.tar.gz" } ], "2019.8.22": [ { "comment_text": "", "digests": { "md5": "5b77d1a89918501f78697cef2d10667b", "sha256": "3834abe870a5786c58f85ac9ee26f9878e050c9e5a6db139abec0cfee3e59596" }, "downloads": -1, "filename": "webanalyzer-2019.8.22.tar.gz", "has_sig": false, "md5_digest": "5b77d1a89918501f78697cef2d10667b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15469, "upload_time": "2019-08-22T15:15:08", "url": "https://files.pythonhosted.org/packages/3e/0e/5814412b435b3e706044be06b930f64cb85e6dea9666e59f929605c05e73/webanalyzer-2019.8.22.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5b77d1a89918501f78697cef2d10667b", "sha256": "3834abe870a5786c58f85ac9ee26f9878e050c9e5a6db139abec0cfee3e59596" }, "downloads": -1, "filename": "webanalyzer-2019.8.22.tar.gz", "has_sig": false, "md5_digest": "5b77d1a89918501f78697cef2d10667b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15469, "upload_time": "2019-08-22T15:15:08", "url": "https://files.pythonhosted.org/packages/3e/0e/5814412b435b3e706044be06b930f64cb85e6dea9666e59f929605c05e73/webanalyzer-2019.8.22.tar.gz" } ] }