❶ 如何爬取網站上的某一信息
兩類網站可以用不同的方法去爬取
一、開放API的網站
一個網站如果開放了API,那麼就可以直接GET到它的json數據。有三種方法可以判斷一個網站是否開放了API。
1、在站內尋找API入口;
2、用搜索引擎搜索「某網站API」;
3、抓包。有的網站雖然用到了ajax,但是通過抓包還是能夠獲取XHR里的json數據的(可用抓包工具抓包,也可以通過瀏覽器按F12抓包:F12-Network-F5刷新)。
二、不開放API的網站
1、如果網站是靜態頁面,那麼可以用requests庫發送請求,再通過HTML解析庫(lxml、parsel等)來解析響應的text;解析庫強烈推薦parsel,不僅語法和css選擇器類似,而且速度也挺快,Scrapy用的就是它。
2、如果網站是動態頁面,可以先用selenium來渲染JS,再用HTML解析庫來解析driver的page_source。
❷ 如何應對網站反爬蟲策略如何高效地爬大量數據
一般有一下幾種
一些常用的方法
IP代理
對於IP代理,各個語言的Native Request API都提供的IP代理響應的API, 需要解決的主要就是IP源的問題了.
網路上有廉價的代理IP(1元4000個左右), 我做過簡單的測試, 100個IP中, 平均可用的在40-60左右, 訪問延遲均在200以上.
網路有高質量的代理IP出售, 前提是你有渠道.
因為使用IP代理後, 延遲加大, 失敗率提高, 所以可以將爬蟲框架中將請求設計為非同步, 將請求任務加入請求隊列(RabbitMQ,Kafka,Redis), 調用成功後再進行回調處理, 失敗則重新加入隊列. 每次請求都從IP池中取IP, 如果請求失敗則從IP池中刪除該失效的IP.
Cookies
有一些網站是基於cookies做反爬蟲, 這個基本上就是如 @朱添一 所說的, 維護一套Cookies池
注意研究下目標網站的cookies過期事件, 可以模擬瀏覽器, 定時生成cookies
限速訪問
像開多線程,循環無休眠的的暴力爬取數據, 那真是分分鍾被封IP的事, 限速訪問實現起來也挺簡單(用任務隊列實現), 效率問題也不用擔心, 一般結合IP代理已經可以很快地實現爬去目標內容.
一些坑
大批量爬取目標網站的內容後, 難免碰到紅線觸發對方的反爬蟲機制. 所以適當的告警提示爬蟲失效是很有必有的.
一般被反爬蟲後, 請求返回的HttpCode為403的失敗頁面, 有些網站還會返回輸入驗證碼(如豆瓣), 所以檢測到403調用失敗, 就發送報警, 可以結合一些監控框架, 如Metrics等, 設置短時間內, 告警到達一定閥值後, 給你發郵件,簡訊等.
當然, 單純的檢測403錯誤並不能解決所有情況. 有一些網站比較奇葩, 反爬蟲後返回的頁面仍然是200的(如去哪兒), 這時候往往爬蟲任務會進入解析階段, 解析失敗是必然的. 應對這些辦法, 也只能在解析失敗的時候, 發送報警, 當告警短時間到達一定閥值, 再觸發通知事件.
當然這個解決部分並不完美, 因為有時候, 因為網站結構改變, 而導致解析失敗, 同樣回觸發告警. 而你並不能很簡單地區分, 告警是由於哪個原因引起的.
❸ 如何爬蟲網頁數據
爬取網頁數據原理如下:
如果把互聯網比作蜘蛛網,爬蟲就是蜘蛛網上爬行的蜘蛛,網路節點則代表網頁。當通過客戶端發出任務需求命令時,ip將通過互聯網到達終端伺服器,找到客戶端交代的任務。一個節點是一個網頁。蜘蛛通過一個節點後,可以沿著幾點連線繼續爬行到達下一個節點。
簡而言之,爬蟲首先需要獲得終端伺服器的網頁,從那裡獲得網頁的源代碼,若是源代碼中有有用的信息,就在源代碼中提取任務所需的信息。然後ip就會將獲得的有用信息送回客戶端存儲,然後再返回,反復頻繁訪問網頁獲取信息,直到任務完成。
❹ 如何在爬蟲中設置代理伺服器HttpClient,可以連續爬取,請老師給具體代碼,謝謝!
java">httpClient.getHostConfiguration().setProxy(dynamicIp.getIp(),dynamicIp.getPort());
這樣可以,我這里dynamicIp是從redis里隨機取的,有個定時任務去取代理IP放redis裡面
❺ 如何獲取伺服器IP地址
如何獲取伺服器IP地址
獲取伺服器ip地址方法有很多這里介紹一個比較方便的
需要知道自己的域名
1、開始->運行->cmd
❻ 黑客是如何竊取伺服器文件的
我的經驗就是打補丁,裝殺毒軟體,防火牆。不過還是轉一篇文章樓主看下吧,其實想找的話,這樣的文章網路上一堆。
伺服器安全配置精華技巧
Windows2000 含有很多的安全功能和選項,如果你合理的配置它們,那麼windows 2000將會是一個很安全的操作系統。
初級安全篇
1.物理安全
伺服器應該安放在安裝了監視器的隔離房間內,並且監視器要保留15天以上的攝像記錄。另外,機箱,鍵盤,電腦桌抽屜要上鎖,以確保旁人即使進入房間也無法使用電腦,鑰匙要放在另外的安全的地方。
2.停掉Guest 帳號
在計算機管理的用戶裡面把guest帳號停用掉,任何時候都不允許guest帳號登陸系統。為了保險起見,最好給guest 加一個復雜的密碼,你可以打開記事本,在裡面輸入一串包含特殊字元,數字,字母的長字元串,然後把它作為guest帳號的密碼拷進去。
3.限制不必要的用戶數量
去掉所有的plicate user 帳戶, 測試用帳戶, 共享帳號,普通部門帳號等等。用戶組策略設置相應許可權,並且經常檢查系統的帳戶,刪除已經不在使用的帳戶。這些帳戶很多時候都是黑客們入侵系統的突破口,系統的帳戶越多,黑客們得到合法用戶的許可權可能性一般也就越大。國內的nt/2000主機,如果系統帳戶超過10個,一般都能找出一兩個弱口令帳戶。我曾經發現一台主機197個帳戶中竟然有180個帳號都是弱口令帳戶。
4.創建2個管理員用帳號
雖然這點看上去和上面這點有些矛盾,但事實上是服從上面的規則的。 創建一個一般許可權帳號用來收信以及處理一些*常事物,另一個擁有Administrators 許可權的帳戶只在需要的時候使用。可以讓管理員使用 「 RunAS」 命令來執行一些需要特權才能作的一些工作,以方便管理。
5.把系統administrator帳號改名
大家都知道,windows 2000 的administrator帳號是不能被停用的,這意味著別人可以一遍又一邊的嘗試這個帳戶的密碼。把Administrator帳戶改名可以有效的防止這一點。當然,請不要使用Admin之類的名字,改了等於沒改,盡量把它偽裝成普通用戶,比如改成:guestone 。
6.創建一個陷阱帳號
什麼是陷阱帳號? Look!>創建一個名為」 Administrator」的本地帳戶,把它的許可權設置成最低,什麼事也幹不了的那種,並且加上一個超過10位的超級復雜密碼。這樣可以讓那些 Scripts s忙上一段時間了,並且可以藉此發現它們的入侵企圖。或者在它的login scripts上面做點手腳。嘿嘿,夠損!
7.把共享文件的許可權從」everyone」組改成「授權用戶」
「everyone」 在win2000中意味著任何有權進入你的網路的用戶都能夠獲得這些共享資料。任何時候都不要把共享文件的用戶設置成」everyone」組。包括列印共享,默認的屬性就是」everyone」組的,一定不要忘了改。
8.使用安全密碼
一個好的密碼對於一個網路是非常重要的,但是它是最容易被忽略的。前面的所說的也許已經可以說明這一點了。一些公司的管理員創建帳號的時候往往用公司名,計算機名,或者一些別的一猜就到的東西做用戶名,然後又把這些帳戶的密碼設置得N簡單,比如 「welcome」 「iloveyou」 「letmein」或者和用戶名相同等等。這樣的帳戶應該要求用戶首此登陸的時候更改成復雜的密碼,還要注意經常更改密碼。前些天在IRC和人討論這一問題的時候,我們給好密碼下了個定義:安全期內無法破解出來的密碼就是好密碼,也就是說,如果人家得到了你的密碼文檔,必須花43天或者更長的時間才能破解出來,而你的密碼策略是42天必須改密碼。
9.設置屏幕保護密碼
很簡單也很有必要,設置屏幕保護密碼也是防止內部人員破壞伺服器的一個屏障。注意不要使用OpenGL和一些復雜的屏幕保護程序,浪費系統資源,讓他黑屏就可以了。還有一點,所有系統用戶所使用的機器也最好加上屏幕保護密碼。
10. 使用NTFS格式分區
把伺服器的所有分區都改成NTFS格式。NTFS文件系統要比FAT,FAT32的文件系統安全得多。這點不必多說,想必大家得伺服器都已經是NTFS的了。
11.運行防毒軟體
我見過的Win2000/Nt伺服器從來沒有見到有安裝了防毒軟體的,其實這一點非常重要。一些好的殺毒軟體不僅能殺掉一些著名的病毒,還能查殺大量木馬和後門程序。這樣的話,「黑客」們使用的那些有名的木馬就毫無用武之地了。不要忘了經常升級病毒庫
12.保障備份盤的安全
一旦系統資料被破壞,備份盤將是你恢復資料的唯一途徑。備份完資料後,把備份盤防在安全的地方。千萬別把資料備份在同一台伺服器上,那樣的話,還不如不要備份。
中級安全篇:
1.利用win2000的安全配置工具來配置策略
微軟提供了一套的基於MMC(管理控制台)安全配置和分析工具,利用他們你可以很方便的配置你的伺服器以滿足你的要求。具體內容請參考微軟主頁:
http://www.microsoft.com/windows200...y/sctoolset.asp
2.關閉不必要的服務
windows 2000 的 Terminal Services(終端服務),IIS ,和RAS都可能給你的系統帶來安全漏洞。為了能夠在遠程方便的管理伺服器,很多機器的終端服務都是開著的,如果你的也開了,要確認你已經正確的配置了終端服務。有些惡意的程序也能以服務方式悄悄的運行。要留意伺服器上面開啟的所有服務,中期性(每天)的檢查他們。下面是C2級別安裝的默認服務:
Computer Browser service TCP/IP NetBIOS Helper
Microsoft DNS server Spooler
NTLM SSP Server
RPC Locator WINS
RPC service Workstation
Netlogon Event log
3.關閉不必要的埠
關閉埠意味著減少功能,在安全和功能上面需要你作一點決策。如果伺服器安裝在_blank">防火牆的後面,冒的險就會少些,但是,永遠不要認為你可以高枕無憂了。用埠掃描器掃描系統所開放的埠,確定開放了哪些服務是黑客入侵你的系統的第一步。\system32\drivers\etc\services 文件中有知名埠和服務的對照表可供參考。具體方法為:
網上鄰居>屬性>本地連接>屬性>internet 協議(tcp/ip)>屬性>高級>選項>tcp/ip篩選>屬性 打開tcp/ip篩選,添加需要的tcp,udp,協議即可。
4.打開審核策略
開啟安全審核是win2000最基本的入侵檢測方法。當有人嘗試對你的系統進行某些方式(如嘗試用戶密碼,改變帳戶策略,未經許可的文件訪問等等)入侵的時候,都會被安全審核記錄下來。很多的管理員在系統被入侵了幾個月都不知道,直到系統遭到破壞。下面的這些審核是必須開啟的,其他的可以根據需要增加:
策略 設置
審核系統登陸事件 成功,失敗
審核帳戶管理 成功,失敗
審核登陸事件 成功,失敗
審核對象訪問 成功
審核策略更改 成功,失敗
審核特權使用 成功,失敗
審核系統事件 成功,失敗
5.開啟密碼密碼策略
策略 設置
密碼復雜性要求 啟用
密碼長度最小值 6位
強制密碼歷史 5 次
強制密碼歷史 42 天
6.開啟帳戶策略
策略 設置
復位帳戶鎖定計數器 20分鍾
帳戶鎖定時間 20分鍾
帳戶鎖定閾值 3次
7.設定安全記錄的訪問許可權
安全記錄在默認情況下是沒有保護的,把他設置成只有Administrator和系統帳戶才有權訪問。
8.把敏感文件存放在另外的文件伺服器中
雖然現在伺服器的硬碟容量都很大,但是你還是應該考慮是否有必要把一些重要的用戶數據(文件,數據表,項目文件等)存放在另外一個安全的伺服器中,並且經常備份它們。
9.不讓系統顯示上次登陸的用戶名
默認情況下,終端服務接入伺服器時,登陸對話框中會顯示上次登陸的帳戶明,本地的登陸對話框也是一樣。這使得別人可以很容易的得到系統的一些用戶名,進而作密碼猜測。修改注冊表可以不讓對話框里顯示上次登陸的用戶名,具體是:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\DontDisplayLastUserName
把 REG_SZ 的鍵值改成 1 .
10.禁止建立空連接
默認情況下,任何用戶通過通過空連接連上伺服器,進而枚舉出帳號,猜測密碼。我們可以通過修改注冊表來禁止建立空連接:
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 的值改成」1」即可。
10.到微軟網站下載最新的補丁程序
很多網路管理員沒有訪問安全站點的習慣,以至於一些漏洞都出了很久了,還放著伺服器的漏洞不補給人家當靶子用。誰也不敢保證數百萬行以上代碼的2000不出一點安全漏洞,經常訪問微軟和一些安全站點,下載最新的service pack和漏洞補丁,是保障伺服器長久安全的唯一方法。
高級篇:
1. 關閉 DirectDraw
這是C2級安全標准對視頻卡和內存的要求。關閉DirectDraw可能對一些需要用到DirectX的程序有影響(比如游戲,在伺服器上玩星際爭霸?我暈..$%$^%^&??),但是對於絕大多數的商業站點都應該是沒有影響的。 修改注冊表 HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI 的Timeout(REG_DWORD)為 0 即可。
2.關閉默認共享
win2000安裝好以後,系統會創建一些隱藏的共享,你可以在cmd下打 net share 查看他們。網上有很多關於IPC入侵的文章,相信大家一定對它不陌生。要禁止這些共享 ,打開 管理工具>計算機管理>共享文件夾>共享 在相應的共享文件夾上按右鍵,點停止共享即可,不過機器重新啟動後,這些共享又會重新開啟的。
默認共享目錄 路徑和功能
C$ D$ E$ 每個分區的根目錄。Win2000 Pro版中,只有Administrator
和Backup Operators組成員才可連接,Win2000 Server版本Server Operatros組也可以連接到這些共享目錄ADMIN$ %SYSTEMROOT% 遠程管理用的共享目錄。它的路徑永遠都指向Win2000的安裝路徑,比如 c:\winntFAX$ 在Win2000 Server中,FAX$在fax客戶端發傳真的時候會到。IPC$ 空連接。IPC$共享提供了登錄到系統的能力。
NetLogon 這個共享在Windows 2000 伺服器的Net Login 服務在處理登陸域請求時用到
PRINT$ %SYSTEMROOT%\SYSTEM32\SPOOL\DRIVERS 用戶遠程管理列印機
解決辦法:
打開注冊表編輯器。REGEDIT
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
在右邊建立一個名為AutoShareServer的DWORD鍵。值為0
3.禁止mp file的產生
mp文件在系統崩潰和藍屏的時候是一份很有用的查找問題的資料(不然我就照字面意思翻譯成垃圾文件了)。然而,它也能夠給黑客提供一些敏感信息比如一些應用程序的密碼等。要禁止它,打開 控制面板>系統屬性>高級>啟動和故障恢復 把 寫入調試信息 改成無。要用的時候,可以再重新打開它。
4.使用文件加密系統EFS
Windows2000 強大的加密系統能夠給磁碟,文件夾,文件加上一層安全保護。這樣可以防止別人把你的硬碟掛到別的機器上以讀出裡面的數據。記住要給文件夾也使用EFS,而不僅僅是單個的文件。 有關EFS的具體信息可以查看
http://www.microsoft.com/windows200...ity/encrypt.asp
5.加密temp文件夾
一些應用程序在安裝和升級的時候,會把一些東西拷貝到temp文件夾,但是當程序升級完畢或關閉的時候,它們並不會自己清除temp文件夾的內容。所以,給temp文件夾加密可以給你的文件多一層保護。
6.鎖住注冊表
在windows2000中,只有administrators和Backup Operators才有從網路上訪問注冊表的許可權。如果你覺得還不夠的話,可以進一步設定注冊表訪問許可權,詳細信息請參考:
http://support.microsoft.com/suppor...s/Q153/1/83.asp
7.關機時清除掉頁面文件
頁面文件也就是調度文件,是win2000用來存儲沒有裝入內存的程序和數據文件部分的隱藏文件。一些第三方的程序可以把一些沒有的加密的密碼存在內存中,頁面文件中也可能含有另外一些敏感的資料。 要在關機的時候清楚頁面文件,可以編輯注冊表
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
把ClearPageFileAtShutdown的值設置成1。
8.禁止從軟盤和CD Rom啟動系統
一些第三方的工具能通過引導系統來繞過原有的安全機制。如果你的伺服器對安全要求非常高,可以考慮使用可移動軟盤和光碟機。把機箱鎖起來扔不失為一個好方法。
9.考慮使用智能卡來代替密碼
對於密碼,總是使安全管理員進退兩難,容易受到 10phtcrack 等工具的攻擊,如果密碼太復雜,用戶把為了記住密碼,會把密碼到處亂寫。如果條件允許,用智能卡來代替復雜的密碼是一個很好的解決方法。
10.考慮使用IPSec
正如其名字的含義,IPSec 提供 IP 數據包的安全性。IPSec 提供身份驗證、完整性和可選擇的機密性。發送方計算機在傳輸之前加密數據,而接收方計算機在收到數據之後解密數據。利用IPSec可以使得系統的安全性能大大增強。
SF的必須開放埠,極其解決埠安全的方法
傳奇伺服器開放埠+花生殼+一些必須埠
可以將這些埠使用TCP/IP篩選,只開放這些埠增加安全性,(開設其他服務,埠自己再加入)
TCP/IP篩選埠-> TCP斷口
埠7220 .... RunGate 1 埠
埠7210 .... RunGate 2 埠 同時開啟3個RunGate
埠7200 .... RunGate 3 埠
埠7100
埠7012
埠6000
埠5600
埠5500
埠5100
埠5000
埠4900
埠3389
埠3372
埠3100
埠3000
埠1027
埠1025
埠0135
\system32\drivers\etc\services 文件中有知名埠和服務的對照表可供參考。具體方法為:
網上鄰居>屬性>本地連接>屬性>internet 協議(tcp/ip)>屬性>高級>選項>tcp/ip篩選>屬性 打開tcp/ip篩選,添加需要的tcp,協議即可。
我開了3個RunGate埠,解決多個玩家同時登陸訪問時會出現7200錯誤而使伺服器突然狂卡,開3個效果比較好。是*(ggggg7原創)
開3個RunGate埠的方法:
RunGate文件夾再復制2份 分別為RunGate1,RunGate2,RunGate3 將裡面的Mirgate.ini分別改為GatePort=7200,GatePort=7210,GatePort=7220
DBSrv200文件夾下的!serverinfo.txt改為127.0.0.1 127.0.0.1 7200 127.0.0.1 7210 127.0.0.1 7220
Mir200文件夾下的!servertable.txt改為
1 127.0.0.1 7200
2 127.0.0.1 7210
3 127.0.0.1 7220
然後運行RunGate1,RunGate2,RunGate3 下的3個RunGate.exe
M2Server會提示:
Gate 0 opened
Gate 1 opened
Gate 2 opened
適當的加點防火牆會更好