自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用Photon高效率提取網(wǎng)站數(shù)據(jù)

新聞 后端
Photon是一種高效率的的網(wǎng)絡(luò)爬蟲,可從目標中提取URL,文件以及各類情報。其通過多線程大大加快數(shù)據(jù)提取進程。

 Photon是一種高效率的的網(wǎng)絡(luò)爬蟲,可從目標中提取URL,文件以及各類情報。其通過多線程大大加快數(shù)據(jù)提取進程。

項目地址:

https://github.com/s0md3v/Photon

主要特點

Photon提供的各種選項可以讓用戶按照自己的方式抓取網(wǎng)頁,不過,Photon最棒的功能并不是這個。

數(shù)據(jù)提取

默認情況下,Photon在抓取時會提取以下數(shù)據(jù):

網(wǎng)址(范圍內(nèi)和范圍外的)

帶參數(shù)的網(wǎng)址(example.com/gallery.php?id=2)

情報(電子郵件,社交媒體帳戶,亞馬遜水桶等)

文件(pdf,png,xml等)

JavaScript等文件

基于自定義正則表達式模式的字符串

提取的信息按下圖方式保存。

智能多線程

大多數(shù)浮于互聯(lián)網(wǎng)表面的工具都沒有正確使用多線程,它們要么為線程提供一個項目列表,這會導(dǎo)致多個線程訪問同一個項目,或者只是放置一個線程鎖定并最終使多線程無效。

Ninja模式

在Ninja模式中,3個在線服務(wù)器用于代表你向目標發(fā)出請求。

所以基本上,現(xiàn)在你有4個客戶端同時向同一個服務(wù)器發(fā)出請求,如果連接速度慢,那么可以提高速度,***限度地降低連接重置的風險以及來自單個客戶端的延遲請求。

這是Quark生成的比較圖,其中的線代表線程:

兼容性&依賴

兼容性

Photon目前全面兼容python2.x – 3.x,但因為這個項目正處于積極開發(fā)階段,可能會需要python2.x不具備的功能。故開發(fā)者最終可能會放棄對python2.x的支持。

操作系統(tǒng)

Photon已經(jīng)在Linux(Arch,Debian,Ubuntu),Termux,Windows(7&10)和Mac上進行了測試,并在所有系統(tǒng)上如期運行,如果你發(fā)現(xiàn)了任何bug,請在github上提交。

顏色

Mac和Windows不支持ANSI轉(zhuǎn)義序列,因此所輸出內(nèi)容不會在Mac和Windows上顯示顏色。

依賴

requests
urllib3
argparse

Photon所使用的其余python庫是預(yù)裝的python解釋器的標準庫。

如何使用Photon

語法: photon.py [選項]
  -u --url              目標url
  -l --level            抓取等級
  -t --threads          線程數(shù)
  -d --delay            請求間的延遲
  -c --cookie           cookie
  -r --regex            正則表達式模式
  -s --seeds            其他的子url
  -e --export           導(dǎo)出格式化結(jié)果
  -o --output           指定輸出目錄
  --exclude             通過正則表達式排除特定url
  --timeout             http 請求超時
  --ninja               ninja 模式
  --update              更新
  --dns                 轉(zhuǎn)儲dns數(shù)據(jù)
  --only-urls           僅提取url
  --user-agent          指定 user-agent(s)

僅抓取單個網(wǎng)站

選項 -u 或 –url,使用示例:

  1. python photon.py -u "http://example.com" 

抓取深度

選項 -l 或 –level,默認深度為2,使用示例:

  1. python photon.py -u "http://example.com" -l 3 

通過該選項,用戶可以設(shè)置抓取的遞歸限制,例如,深度為2意思是Photon會從主頁和子頁。

線程數(shù)

選項 -t 或 –threads,默認線程數(shù)為2,使用示例:

  1. python photon.py -u "http://example.com" -t 10 

該選項可以對目標進行并發(fā)請求,-t選項可用于指定要進行的并發(fā)請求數(shù)量。值得注意的是,雖然多線程可以加速抓取,但是也可能會觸發(fā)安全機制,此外,線程數(shù)過多,也有可能使小型網(wǎng)站宕機。

每個HTTP請求間的延遲

選項 -d 或 –delay,默認為0,使用示例:

  1. python photon.py -u "http://example.com" -d 2 

該選項可以指定每個HTTP(S)請求之間間隔的秒數(shù)。有效值是int,例如1表示1秒。

超時

選項 –timeout,默認為5,使用示例:

  1. python photon.py -u "http://example.com --timeout=4 

該選項指定HTTP(S)請求等待多長時間即為超時。

Cookies

選項 -c 或 –cookies,默認為 no cookie header is sent,使用示例:

  1. python photon.py -u "http://example.com" -c "PHPSESSID=u5423d78fqbaju9a0qke25ca87" 

該選項允許你在非ninja模式下為發(fā)出的每個HTTP請求添加Cookie header,主要用于目標網(wǎng)站需要基于Cookie驗證的情形。

指定輸出目錄

選項 -o 或 –output,默認為 目標域名,使用示例:

  1. python photon.py -u "http://example.com" -o "我的目錄" 

Photon將結(jié)果保存在以目標域名命名的目錄中,但你可以使用此選項自定義目錄。

排除特定url

選項 –exclude,使用示例:

  1. python photon.py -u "http://example.com" --exclude="/blog/20[17|18]" 

匹配指定正則表達式的網(wǎng)址將不會被抓取及顯示在結(jié)果中。

指定子url

選項 -s 或 –seeds,使用示例:

  1. python photon.py -u "http://example.com" --seeds "http://example.com/blog/2018,http://example.com/portals.html" 

你可以使用此選項添加自定義子URL,要以逗號分隔。

指定user-agent(s)

選項 –user-agent,使用示例:

  1. python photon.py -u "http://example.com" --user-agent "curl/7.35.0,Wget/1.15 (linux-gnu)" 

你可以使用此選項使用自己的用戶代理,以逗號分隔。此選項僅用于幫助用戶在不修改默認user-agents.txt文件的情況下使用特定用戶代理。

自定義正則表達式模式

選項 -r 或 –regex,使用示例:

  1. python photon.py -u "http://example.com" --regex "\d{10}" 

通過使用此選項指定正則表達式模式,可以在抓取期間提取字符串。

導(dǎo)出格式化結(jié)果

選項 -e 或 –export

通過 -e 選項,你可以指定要保存文件的輸出格式,使用示例:

  1. python photon.py -u "http://example.com" --export=json 

目前支持的格式:json

跳過數(shù)據(jù)提取

選項: –only-urls,使用示例:

  1. python photon.py -u "http://example.com" --only-urls 

該選項會跳過提取js文件等數(shù)據(jù),當你只需要抓取目標時,該選項可以派上用場。

更新

選項 –update,使用示例:

  1. python photon.py --update 

如果使用此選項,Photon會檢查更新。如果有新的版本,Photon會下載并將更新文件合并到當前目錄中,Photon不會覆蓋其他文件。

Ninja模式

選項 –ninja

此選項啟用Ninja模式。在該模式下,Photon會使用以下網(wǎng)站代表你發(fā)出請求。

  1. codebeautify.org 
  2. photopea.com 
  3. pixlr.com 

轉(zhuǎn)儲DNS數(shù)據(jù)

選項 –dns,使用示例:

  1. python photon.py -u http://example.com --dns 

創(chuàng)建顯示目標域名的DNS數(shù)據(jù)的圖像。目前不支持目標是子域。

責任編輯:張燕妮 來源: FreeBuf
相關(guān)推薦

2015-09-06 16:05:57

綠色數(shù)據(jù)中心效率

2012-07-16 00:51:36

程序員效率

2010-09-09 16:51:50

2020-03-23 08:36:18

Python編程代碼

2015-11-06 16:17:00

華為ICTC2015

2010-04-13 15:14:31

Oracle優(yōu)化

2023-05-17 16:47:47

物聯(lián)網(wǎng)智能建筑

2023-07-28 14:34:10

數(shù)據(jù)中心服務(wù)器

2021-11-12 16:54:07

云計算5G云應(yīng)用

2023-01-10 11:18:29

DevOps

2010-03-21 19:05:19

微軟MSF

2017-08-02 08:45:38

模塊化數(shù)據(jù)中心部署

2018-05-31 21:16:33

DevOps協(xié)作工具開發(fā)

2010-08-19 10:18:02

寬帶路由器

2011-01-11 14:03:52

2015-11-27 12:59:11

Android技巧提高效率

2018-09-30 14:46:38

Linux命令技巧

2023-11-02 14:44:44

數(shù)據(jù)中心

2010-05-07 09:58:27

SQL Server

2024-06-04 15:53:12

Python數(shù)組
點贊
收藏

51CTO技術(shù)棧公眾號