项目地址:
https://github.com/s0md3v/Photon
紧张特点Photon供应的各种选项可以让用户按照自己的办法抓取网页,不过,Photon最棒的功能并不是这个。
数据提取
默认情形下,Photon在抓取时会提取以下数据:
(图片来自网络侵删)网址(范围内和范围外的)
带参数的网址(example.com/gallery.php?id=2)
情报(电子邮件,社交媒体帐户,亚马逊水桶等)
文件(pdf,png,xml等)
JavaScript等文件
基于自定义正则表达式模式的字符串
提取的信息按下图办法保存。
智能多线程
大多数浮于互联网表面的工具都没有精确利用多线程,它们要么为线程供应一个项目列表,这会导致多个线程访问同一个项目,或者只是放置一个线程锁定并终极使多线程无效。
Ninja模式在Ninja模式中,3个在线做事器用于代表你向目标发出要求。
以是基本上,现在你有4个客户端同时向同一个做事器发出要求,如果连接速率慢,那么可以提高速率,最大限度地降落连接重置的风险以及来自单个客户真个延迟要求。
这是Quark天生的比较图,个中的线代表线程:
兼容性&依赖兼容性
Photon目前全面兼容python2.x – 3.x,但由于这个项目正处于积极开拓阶段,可能会须要python2.x不具备的功能。故开拓者终极可能会放弃对python2.x的支持。
操作系统Photon已经在Linux(Arch,Debian,Ubuntu),Termux,Windows(7&10)和Mac上进行了测试,并在所有系统上准期运行,如果你创造了任何bug,请在github上提交。
颜色Mac和Windows不支持ANSI转义序列,因此所输出内容不会在Mac和Windows上显示颜色。
依赖
requestsurllib3argparse
Photon所利用的别的python库是预装的python阐明器的标准库。
如何利用Photon
语法: photon.py [选项] -u --url 目标url -l --level 抓取等级 -t --threads 线程数 -d --delay 要求间的延迟 -c --cookie cookie -r --regex 正则表达式模式 -s --seeds 其他的子url -e --export 导出格式化结果 -o --output 指定输出目录 --exclude 通过正则表达式打消特定url --timeout http 要求超时 --ninja ninja 模式 --update 更新 --dns 转储dns数据 --only-urls 仅提取url --user-agent 指定 user-agent(s)
仅抓取单个网站选项 -u 或 –url,利用示例:
python photon.py -u \公众http://example.com\"大众
抓取深度选项 -l 或 –level,默认深度为2,利用示例:
python photon.py -u \"大众http://example.com\"大众 -l 3
通过该选项,用户可以设置抓取的递归限定,例如,深度为2意思是Photon会从主页和子页。
线程数选项 -t 或 –threads,默认线程数为2,利用示例:
python photon.py -u \公众http://example.com\"大众 -t 10
该选项可以对目标进行并发要求,-t选项可用于指定要进行的并发要求数量。值得把稳的是,虽然多线程可以加速抓取,但是也可能会触发安全机制,此外,线程数过多,也有可能使小型网站宕机。
每个HTTP要求间的延迟选项 -d 或 –delay,默认为0,利用示例:
python photon.py -u \"大众http://example.com\公众 -d 2
该选项可以指定每个HTTP(S)要求之间间隔的秒数。有效值是int,例如1表示1秒。
超时选项 –timeout,默认为5,利用示例:
python photon.py -u \"大众http://example.com --timeout=4
该选项指定HTTP(S)要求等待多永劫光即为超时。
Cookies选项 -c 或 –cookies,默认为 no cookie header is sent,利用示例:
python photon.py -u \公众http://example.com\"大众 -c \公众PHPSESSID=u5423d78fqbaju9a0qke25ca87\"大众
该选项许可你在非ninja模式下为发出的每个HTTP要求添加Cookie header,紧张用于目标网站须要基于Cookie验证的环境。
指定输出目录选项 -o 或 –output,默认为 目标域名,利用示例:
python photon.py -u \"大众http://example.com\"大众 -o \"大众我的目录\"大众
Photon将结果保存在以目标域名命名的目录中,但你可以利用此选项自定义目录。
打消特定url选项 –exclude,利用示例:
python photon.py -u \公众http://example.com\公众 --exclude=\公众/blog/20[17|18]\"大众
匹配指定正则表达式的网址将不会被抓取及显示在结果中。
指定子url选项 -s 或 –seeds,利用示例:
python photon.py -u \"大众http://example.com\"大众 --seeds \"大众http://example.com/blog/2018,http://example.com/portals.html\"大众
你可以利用此选项添加自定义子URL,要以逗号分隔。
指定user-agent(s)选项 –user-agent,利用示例:
python photon.py -u \"大众http://example.com\"大众 --user-agent \"大众curl/7.35.0,Wget/1.15 (linux-gnu)\公众
你可以利用此选项利用自己的用户代理,以逗号分隔。此选项仅用于帮助用户在不修正默认user-agents.txt文件的情形下利用特定用户代理。
自定义正则表达式模式选项 -r 或 –regex,利用示例:
python photon.py -u \公众http://example.com\"大众 --regex \"大众\d{10}\"大众
通过利用此选项指定正则表达式模式,可以在抓取期间提取字符串。
导出格式化结果选项 -e 或 –export
通过 -e 选项,你可以指定要保存文件的输出格式,利用示例:
python photon.py -u \"大众http://example.com\"大众 --export=json
目前支持的格式:json
跳过数据提取选项:–only-urls,利用示例:
python photon.py -u \"大众http://example.com\"大众 --only-urls
该选项会跳过提取js文件等数据,当你只须要抓取目标时,该选项可以派上用场。
更新选项 –update,利用示例:
python photon.py --update
如果利用此选项,Photon会检讨更新。如果有新的版本,Photon会下载并将更新文件合并到当前目录中,Photon不会覆盖其他文件。
Ninja模式选项 –ninja
此选项启用Ninja模式。在该模式下,Photon会利用以下网站代表你发出要求。
codebeautify.org
photopea.com
pixlr.com
转储DNS数据选项 –dns,利用示例:
python photon.py -u http://example.com --dns
创建显示目标域名的DNS数据的图像。目前不支持目标是子域。
文章转载:Python编程学习圈(版权归原作者所有,侵删)
点击【IT口试精选】查看全网最威信的一线大厂口试真题及口试履历,每天更新哦!
点击【IT路边社】查看实时更新的IT新闻资讯
点击【互联网资料存储站】获取全网最全运维流程文档、表格、脚本、架构、等保资料等
回答【加群】群满啦!~添加波哥微信拉您进群!
点击【安全加固】获取最新安全加固脚本
点击【一键iptables脚本】获取iptables自动设置脚本