如何使用Photon高效率提取网站数据
副标题[/!--empirenews.page--]
技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战
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上显示颜色。 依赖requests urllib3 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,使用示例:
抓取深度选项 -l 或 –level,默认深度为2,使用示例:
通过该选项,用户可以设置抓取的递归限制,例如,深度为2意思是Photon会从主页和子页。 线程数选项 -t 或 –threads,默认线程数为2,使用示例:
该选项可以对目标进行并发请求,-t选项可用于指定要进行的并发请求数量。值得注意的是,虽然多线程可以加速抓取,但是也可能会触发安全机制,此外,线程数过多,也有可能使小型网站宕机。 每个HTTP请求间的延迟选项 -d 或 –delay,默认为0,使用示例:
该选项可以指定每个HTTP(S)请求之间间隔的秒数。有效值是int,例如1表示1秒。 超时选项 –timeout,默认为5,使用示例:
该选项指定HTTP(S)请求等待多长时间即为超时。 Cookies选项 -c 或 –cookies,默认为 no cookie header is sent,使用示例:
该选项允许你在非ninja模式下为发出的每个HTTP请求添加Cookie header,主要用于目标网站需要基于Cookie验证的情形。 指定输出目录选项 -o 或 –output,默认为 目标域名,使用示例:
Photon将结果保存在以目标域名命名的目录中,但你可以使用此选项自定义目录。 排除特定url(编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |