Photon是一种高效率的的网络爬虫,可从目标中提取URL,文件以及各类情报。其通过多线程大大加快数据提取进程。
创新互联公司为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到做网站、成都网站制作, 我们的网页设计师为您提供的解决方案。
https://github.com/s0md3v/Photon
Photon提供的各种选项可以让用户按照自己的方式抓取网页,不过,Photon最棒的功能并不是这个。
默认情况下,Photon在抓取时会提取以下数据:
网址(范围内和范围外的)
带参数的网址(example.com/gallery.php?id=2)
情报(电子邮件,社交媒体帐户,亚马逊水桶等)
文件(pdf,png,xml等)
JavaScript等文件
基于自定义正则表达式模式的字符串
提取的信息按下图方式保存。
大多数浮于互联网表面的工具都没有正确使用多线程,它们要么为线程提供一个项目列表,这会导致多个线程访问同一个项目,或者只是放置一个线程锁定并最终使多线程无效。
在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上显示颜色。
requests urllib3 argparse
Photon所使用的其余python库是预装的python解释器的标准库。
语法: 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选项可用于指定要进行的并发请求数量。值得注意的是,虽然多线程可以加速抓取,但是也可能会触发安全机制,此外,线程数过多,也有可能使小型网站宕机。
选项 -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)请求等待多长时间即为超时。
选项 -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将结果保存在以目标域名命名的目录中,但你可以使用此选项自定义目录。
选项 –exclude,使用示例:
- python photon.py -u "http://example.com" --exclude="/blog/20[17|18]"
匹配指定正则表达式的网址将不会被抓取及显示在结果中。
选项 -s 或 –seeds,使用示例:
- python photon.py -u "http://example.com" --seeds "http://example.com/blog/2018,http://example.com/portals.html"
你可以使用此选项添加自定义子URL,要以逗号分隔。
选项 –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模式。在该模式下,Photon会使用以下网站代表你发出请求。
- codebeautify.org
- photopea.com
- pixlr.com
选项 –dns,使用示例:
- python photon.py -u http://example.com --dns
创建显示目标域名的DNS数据的图像。目前不支持目标是子域。
文章题目:如何使用Photon高效率提取网站数据
URL网址:http://www.shufengxianlan.com/qtweb/news44/552944.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联