百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

开源项目推荐--Photon提取网站数据

liebian365 2024-10-23 13:54 16 浏览 0 评论

Photon是一种高效率的的网络爬虫,可从目标中提取URL,文件以及各类情报。其通过多线程大大加快数据提取进程。

项目地址:

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上显示颜色。

依赖

requestsurllib3
argparse


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自动设置脚本



相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: