⑴ 網站是怎樣爬取到我的QQ號碼的
您好,你所關心的問題這邊有詳細的分解。
如何盜取別人的QQ號碼
正重聲明本文章為學習交流
1、在線密碼破解 大家知道QQ可以利用代理伺服器登錄,這是一種保護措施。它不僅可以隱藏用戶的真實IP地址,以避免遭受網路攻擊,還可以加快登錄速度,保證登錄的穩定性。
在線密碼破解和本地密碼破解採用的技術方法類似,都是窮舉法,只不過前者完全脫離了本地用戶使用的QQ。它通過對登錄代理伺服器進行掃描,只要想盜的QQ號碼在線,就可利用在線盜號工具實現遠程TCP/IP的追捕,從而神不知鬼不覺地盜取QQ密碼!
在線破解改變了本地破解那種被動的破解方式,只要是在線的QQ號碼都可以破解,適用范圍較廣。但是由於它仍然採用窮舉法技術,所以在枚舉密鑰位數長度以及類型時,校驗時間很長,破解效率不高。同樣,這種方法還受到電腦速度、網速等諸多因素的影響,因此比前面的本地破解更麻煩。
目前功能比較強大的一款QQ密碼在線破解軟體叫QQExplorer。它的破解操作分四步:第一步,在QQ起始號碼和結束號碼中填上想要盜取的QQ號碼(此號碼必須在線);第二步,在「添加或刪除HTTP代理伺服器」中輸入代理伺服器的IP地址和埠號碼(如果你嫌自己尋找QQ代理伺服器麻煩,可以使用一些現代的QQ代理公布軟體);第三步,點擊「添加&測試」按鈕,軟體先自動檢測此伺服器是否正常,確定後將它加入代理伺服器列表(此軟體可填入多個代理伺服器的地址,並且能夠自動篩選不可用或者速度慢的伺服器);第四步,點擊「開始」按鈕,開始在線密碼破解
2、登錄窗口破解
偽造QQ登錄窗口的盜號方法非常簡單,這是一種比較另類的木馬破解方法(後面對木馬破解有專門講述)。先用盜號軟體生成一個偽裝的QQ主程序,它運行後會出現跟騰訊QQ一模一慎宏搜樣的登錄窗口,只要用戶在這個偽登錄窗口中登錄,輸入的QQ號及密碼就會被記錄下來,並通過電子郵件發送到盜號者指定的油箱中,在此以一款叫「狐Q」的軟體為例,首次運行它時,它會把自身復制到QQ目錄中,並把原來的QQ.exe文件改名為QQ.com(這樣的更改不會影響QQ的正常運行)。設置完畢後,「狐Q」的原程序就會消失,偽裝成QQ等待「獵物」上鉤在其軟體設置中,有一項設置可以決定真假QQ交替運行的次數,可以減少用戶在使用QQ時產生的懷疑。比如說將「生效次數」設定為3,那麼用戶第一次運行的是真QQ了,也就是說在第三次運行時,用戶的QQ號便被盜了!在QQ密碼發送的過程中,如果發送失敗,它還會把QQ號和密碼記下來,等待下一次發送。
即時監視QQ登錄窗口的盜號方法利用Windows窗口函數、句柄功能實現QQ號和密碼的後台截取。此類軟體幾乎可以捕獲Windows下所有標准密碼框中的絕陪密碼,如QQ、Outlook、屏幕保護程序、各種電子郵件客戶端、各種游戲賬號和上網賬號等。捕獲後,它也會將密碼實時發送到盜號者指定的郵箱中。其代表性的盜號軟體是「密碼使者」,它幾乎可以捕獲Windows 9x/2000/XP下所有登錄窗口中的密碼,並且還能夠盜取在網頁中登錄的各種密碼。盜號在使用這款軟體時,只須填上用於接收別人QQ密碼的郵箱地址及保護密碼,並把生成的盜號器文件傳過去哄騙別人運行,然後就可以坐等密碼上門!此軟體與傳統的鍵盤記錄器不同,它在電腦每次開機時隱藏自啟動,不管密碼是用鍵盤輸入的,還是復制、粘貼的,都能夠有效地實時攔寬歷截!其注冊版本居然還帶有自動升級的功能,破壞力十分巨大。
3、消息詐騙
孔子曰:上士殺人用筆端,中士殺人用語言,下士殺人用石盤。遠程盜取QQ密碼還有一種大家最常見也是最簡單最有效的方法,那就是利用不少人愛貪小便宜的弱點,進行人為的欺騙!
標題:騰訊關於xxxxx獲獎通知
「QQ幸運兒:恭喜!!!您已經成為QQ在線網友齊抽獎的中獎用戶。您將獲贈精美T恤1件,並有機會得到NOKIA 7110手機1部。騰訊公司(tencent.com)註:獎品是以郵寄方式寄出,請您認真填寫以下資料。如果填寫錯誤,將被作為自動放棄獲獎機會處理。> > QQ號碼:> 密碼:> 姓名:> E-mail地址:> 身份證號碼:> 通訊地址:> 聯系電話:> 郵編:」
比如我們的QQ經常會收到如下的陌生人消息。
如果你真的如實填寫這些資料並傻傻的發送回去,不一會兒QQ密碼就被盜了。
還有類似這樣的消息:「親愛的 號QQ用戶,恭喜你你已經成為騰訊的幸運號碼,騰訊公司送你QQ靚號:12345,密碼:54321。請盡快登陸並修改密碼,感謝您對騰訊公司的支持!」不少人一看,以為白撿的便宜來了,登錄一試還是真的,於是就大大咧咧地笑納了。但是,很多人為了方便,不管什麼東西都愛使用相同的密碼,所以當這個QQ號的密碼被你改為與自己QQ號相同的密碼時,自己QQ號的連同這個贈送的QQ號都得玩完!這是因為,贈送的QQ號已被盜號者申請過密碼保護,當你更改密碼後他就利用騰訊的密碼保護功能把它收了回去,同時也收走你的QQ密碼。如果你的QQ沒有申請過密碼保護,此刻就只能和它永別了。
4、更多的木馬破解
「古希臘大軍圍攻特洛伊城,久攻不破,遂造一大木馬藏匿將士於其中,大部隊假裝撤退而棄木馬。城中得知敵退,將木馬作戰利品拖入城內。午夜時分,匿於木馬中的將士開啟城門四處縱火,城外伏兵湧入,里應外合,焚屠特洛伊城。」這是古希臘神話《木馬屠城記》的故事,其中那隻木馬被黑客程序借用其名,表「一經潛入,後患無窮」之意。一個完整的木馬程序由伺服器端和控制端組成。所謂「中了木馬」,是指用戶的電腦中被安裝了木馬的伺服器端,而擁有控制端的盜號者就通過網路遠程式控制制該電腦,從而輕而易舉地盜得該電腦中的QQ密碼。
針對QQ的木馬程序多不勝數,其中專門盜取QQ密碼的也有一大堆,它們被偷偷地安裝在用戶的電腦中,隨電腦啟動而自動運行,如果用戶使用QQ,那麼其賬號和密碼就會被這些木馬記錄下來,並發送到木馬安裝者的郵箱中。前面已經介紹了兩款通過登錄窗口盜號的QQ木馬,下面再介紹兩款典型的。
第一款:極品QQ盜號2004
這是「極品QQ盜號」木馬的最新版本。它的使用方法跟前面介紹的「密碼使者」差不多,先再「設置」欄中填入接收QQ密碼的郵箱地址和發送郵件的標題,然後把生成的盜號器偷偷地安裝到別人的電腦里這個木馬聲稱可以避過主流的殺毒軟體,盜取QQ最新版本的密碼,即QQ2004和QQ2004奧運特別版的密碼。
第二款:QQ間諜3.0
使用此木馬軟體時,點擊工具條上的「服務端」,按照提示生成服務端程序,然後把它偷偷地傳到別人的電腦中,當受害者不小心運行了它,木馬就被種上了。這個木馬不僅可以盜號,還能悄悄地在後台記錄受害者的QQ聊天信息,並下載可執行文件實現遠程升級和遠程執行腳本程序。另外再注冊之後,它還可以直接遠程監控對方電腦上的QQ聊天記錄。
利用木馬軟體盜取QQ密碼,顯然比用前面介紹的那些破解方法更有效率!不僅節省時間,而且成功率也高。但是,如何把木馬程序的伺服器端安裝在用戶的電腦中,這是一個費心思的事兒。另外,很多功能強大的木馬程序都是需要花錢注冊,才能使用其全部功能。因此,對於那些水平參差不齊的盜號者而言,要想玩轉木馬程序,還得費點勁。
主動出擊 教你奪回被人盜走的QQ號
隨著網路的普及,如今很多朋友最重要的交流方式都是QQ,但是QQ安全是一個大家都非常關心的話題,盜取QQ號的工具也是層出不窮,隨著近年來大家安全意識的提高,大家對QQ安全有了一定的重視,但是所謂黑客藉助一些工具盜取QQ號同樣是非常容易的事,下面就來看看黑客是如何利用工具軟體結合郵箱輕松盜取他人的QQ號碼的,以便我們更加有效地防範!
一、QQ密碼發送者
該軟體使用比較簡單,你需要具有一定的「欺騙」能力,要想成功,最關鍵的在於如何想方設法讓對方接收並運行你的木馬,然後你就可以「坐收漁利」了!
下載並解壓該軟體,運行其中的可執行文件,運行窗口如圖1。
在此窗口中,你只要輸入一個有效的郵箱,然後點擊「生成QQ木馬」按鈕即可生成一個木馬,如圖2。
接下來就是把該木馬發送給對方,要能讓對方運行,你需要將改木馬改名,比如改名為「我的FLASH」、「XX軟體」等,只要能讓對方信任你並點擊運行該木馬即可!
一旦對方運行了該軟體,並再次登陸QQ,那麼對方的QQ號碼、密碼以及對方機器IP等信息都會通過郵件發送到你設置好的郵箱,你就等著查看自己的「戰功」吧,如圖3。
提示:
該軟體非常適合在網吧內使用,只要你在別的機器上配置好該軟體,然後換一台機器上網,一旦別人用那台機器登陸QQ,當然是把他的QQ拱手相送了!
二、無敵QQ密碼盜取器
該軟體是一個後台監控類的盜取QQ的軟體,同樣需要郵箱配合使用,具體設置比較簡單。
運行該軟體,配置窗口如圖4。
在該窗口中,你需要設置好的所使用郵箱的SMTP伺服器地址及用戶名和密碼,為了保證信件能正常接收,設置完畢後最好點擊「測試」按鈕進行測試。
提示:
郵件標題不填則將以QQ號碼為標題,另外,最好把「發送多少個號碼」設置小點,這個功能很有用,一旦程序發送郵件的數目達到了這個數的時候就不再發送了,否則可能導致你的信箱被撐破。
三、用QQ破密使者盜取QQ
QQ破密使者是一個本地破解QQ密碼的黑客工具,你可以選擇字典暴力破解本地QQ密碼,速度極快,並可自己設定延遲時間,下面看看具體的使用方法。
下載該軟體並解壓,其中「QQPW_Crack8」是安裝程序,裡面還有一個「破解字典」文件夾(圖5),這是破解QQ密碼所要用到的字典文件,裡面有4個字典文件,當然你也可以自己製作一個字典工自己使用。安裝完該軟體後,就可以實踐一下該軟體的威力了!
首先運行該軟體,軟體主界面如圖6所示。
首先你需要配置「QQ路徑」,點擊「瀏覽」按鈕找到QQ的主程序,「QQ號碼」一欄中自動會顯示用本機登陸的QQ號碼,你只要選擇其中一個即可,然後需要設置「字典路徑」,點擊後面的「瀏覽」按鈕,找到字典文件所在位置,比如C:\WINDOWS\Desktop\新建文件夾\QQ破密使者\破解字典\dictionary1.txt,如圖7。
設置好字典文件後,你還可以設置延遲時間,然後你就可以點擊「開始破解」進行破解了!該軟體會用字典文件中的密碼一一嘗試,破解過程如圖8。
提示:破解速度跟你的電腦速度有關,在破解過程中不要打開別的什麼程序以免影響破解速度!這種方法非常適合於在網吧盜取別人的QQ號!
四、輕松偷窺QQ2004聊天記錄
隨著QQ2004Beta的推出,廣大「Q友」們又一次體驗了新版本帶給大家的驚喜,那麼QQ2004Beta在安全性方面又怎麼樣呢?針對QQ2004Beta 推出的「QQ2004Beta免密碼登陸器」也許同樣會帶給你一個「驚喜」!
使用「QQ2004Beta免密碼登陸器」後,輸入任意密碼即可登陸QQ,這樣你就可以偷窺他人的好友資料及聊天記錄啦!注意該軟體只適用於最新版本的QQ2004Beta。
下載並解壓該軟體後,必須將其中的「cr-QQ2004Beta(7.13).exe」拷貝到你的QQ2004Beta安裝目錄,通常為「C:\Program Files\Tencent\qq」,否則直接運行該軟體會出現找不到QQ.exe文件的提示!
運行QQ2004Beta安裝目錄下的「cr-QQ2004Beta(7.13).exe」文件,彈出窗口如圖9所示。
點擊「確定」按鈕後彈出QQ正常的登陸界面,如圖10。
這里你隨便輸入一個密碼,然後點擊「登錄」即可登陸,但這時會彈出一個「請再次輸入登錄密碼」的提示框,不要管它,但是千萬不要點擊「取消」,否則就QQ就自動關閉了,如圖11。
這時QQ就離線登陸了,你可以查看他人的好友資料及聊天記錄。需要注意的是:這樣登陸的QQ聊天窗口是不能打開的,所以要查看聊天記錄和好友資料,必須依次點擊「菜單」→「好友與資料」→「消息管理器」才行,或者你在QQ主界面上用滑鼠右擊某個好友,然後選擇「聊天記錄」或者「查看資料」選項。
主動出擊 教你奪回被人盜走的QQ號碼
很多朋友都有過QQ號被盜的經歷,即使用「密碼保護」功能找回來後,裡面的Q幣也已經被盜號者洗劫一空,碰到更惡毒的盜號者,還會將你的好友統統刪除,朋友們將會永遠得離開你。想過反擊嗎?什麼,反擊?別開玩笑了,我們只是菜鳥,不是黑客,我們只會看看網頁,聊聊天,連QQ號是怎麼被盜的都不知道,還能把盜號者怎麼樣呢?其實喜歡盜號的所謂「黑客」們,也只是利用了一些現成的盜號工具,只要我們了解了QQ號被盜的過程,就能作出相應防範,甚至由守轉攻,給盜號者以致命一擊。
一、知己知彼,盜號技術不再神秘
如今,還在持續更新的QQ盜號軟體已經所剩無幾,其中最為著名,流傳最廣的則非「啊拉QQ大盜」莫屬,目前絕大多數的QQ號被盜事件都是由這個軟體引起的。軟體的使用條件很簡單,只要你有一個支持smtp發信的郵箱或者一個支持asp腳本的網頁空間即可。而且該木馬可以將盜取的QQ號自動分為靚號和非靚號兩種,並將它們分別發送到不同的信箱中,這也是「啊拉QQ大盜」如此流行的原因之一。接下來,便讓我們先來了解一下其工作原理,以便從中找到反擊的良方。
1、選擇盜號模式
下載「啊拉QQ大盜」,解壓後有兩個文件:alaqq.exe、愛永恆,愛保姆qq.asp。其中alaqq.exe是「啊拉QQ大盜」的配置程序,愛永恆,愛保姆qq.asp是使用「網站收信」模式時需使用的文件。正式使用之前,還需要設置其參數。
「郵箱收信」配置:運行alaqq.exe,出現程序的配置界面。在「發信模式選擇」選項中選中「郵箱收信」,在「郵箱收信」填寫電子郵箱地址(建議使用程序默認的163.com網易的郵箱)。這里以郵箱[email protected](密碼n_12345)為例來介紹「郵箱收信」模式時的配置,並進行下文中的測試。此外,在「收信箱(靚)」和「收信箱(普)」中可以填入不同的郵箱地址用來接受QQ靚號和普通QQ號。然後在「發信伺服器」下拉框中選擇自己郵箱相應的smtp伺服器,這里是smtp.163.com。最後填入發信箱的帳號、密碼、全稱即可。
設置完畢後,我們可以來測試一下填寫的內容是否正確,點擊下方「測試郵箱」按鈕,程序將會出現郵箱測試狀態。如果測試的項目都顯示成功,即可完成郵箱信息配置。
「網站收信」配置:除了選擇「郵箱收信」模式之外,我們還可以選擇「網站收信」模式,讓盜取的QQ號碼自動上傳到指定的網站空間。當然,在使用之前,也需要做一些准備工作。
用FTP軟體將愛永恆,愛保姆qq.asp上傳支持ASP腳本的空間,運行alaqq.exe,在「Asp介面地址」中輸入愛永恆,愛保姆qq.asp所在的URL地址,那麼,當木馬截獲QQ號碼信息後,就會將其保存於愛永恆,愛保姆qq.asp同目錄下的qq.txt文件中。
2、設置木馬附加參數
接下來我們進行高級設置。如果勾選「運行後關閉QQ」,對方一旦運行「啊拉QQ大盜」生成的木馬,QQ將會在60秒後自動關閉,當對方再次登錄QQ後,其QQ號碼和密碼會被木馬所截獲,並發送到盜號者的郵箱或網站空間中。此外,如果希望該木馬被用於網吧環境,那就需要勾選「還原精靈自動轉存」,以便系統重起後仍能運行木馬。除這兩項外,其他保持默認即可。
3、盜取QQ號碼信息
配置完「啊拉QQ大盜」,點擊程序界面中的「生成木馬」,即可生成一個能盜取QQ號碼的木馬程序。我們可以將該程序偽裝成圖片、小游戲,或者和其他軟體捆綁後進行傳播。當有人運行相應的文件後,木馬會隱藏到系統中,當系統中有QQ登錄時,木馬便會開始工作,將相關的號碼及密碼截取,並按照此前的設置,將這些信息發送到郵箱或者網站空間。
二、練就慧眼,讓木馬在系統中無處可逃
現在,我們已經了解了「啊拉QQ大盜」的一般流程,那麼如何才能從系統中發現「啊拉QQ大盜」呢?一般來說,如果碰到了以下幾種情況,那就應該小心了。
·QQ自動關閉。
·運行某一程序後其自身消失不見。
·運行某一程序後殺毒軟體自動關閉。
·訪問殺毒軟體網站時瀏覽器被自動關閉。
·如果殺毒軟體有郵件監控功能的,出現程序發送郵件的警告框。
·安裝有網路防火牆(例如天網防火牆),出現NTdhcp.exe訪問網路的警告。
出現上述情況的一種或多種,系統就有可能已經感染了「啊拉QQ大盜」。當然,感染了木馬並不可怕,我們同樣可以將其從系統中清除出去。
1、手工查殺木馬。發現系統感染了「啊拉QQ大盜」後我們可以手工將其清除。「啊拉QQ大盜」運行後會在系統目錄中的system32文件夾下生成一個名為NTdhcp.exe的文件,並在注冊表的啟動項中加入木馬的鍵值,以便每次系統啟動都能運行木馬。我們首先要做的就是運行「任務管理器」,結束其中的木馬進程「NTdhcp.exe」。然後打開資源管理器中的「文件夾選項」,選擇其中的「查看」標簽,將其中「隱藏受保護的操作系統文件」選項前面的勾去掉。接著進入系統目錄中的system32文件夾,將NTdhcp.exe文件刪除。最後進入注冊表刪除NTdhcp.exe鍵值,該鍵值位於HKEY_LOCAL_MACHINE\Software \Microsoft \Windows \Currentversion \Run。
2、卸載木馬。卸載「啊拉QQ大盜」很簡單,只要下載「啊拉QQ大盜」的配置程序,運行後點擊其中的「卸載程序」按鈕即可將木馬完全清除出系統。
三、以退為進,給盜號者以致命一擊
忙乎了半天,終於把系統中的「啊拉QQ大盜」徹底清除,那麼,面對可惡的盜號者,我們是不是應該給他一個教訓呢?
1、利用漏洞,由守轉攻
這里所謂的「攻」,並不是直接入侵盜號者的電腦,相信這種「技術活」並不適合大家。這里只是從盜號軟體幾乎都存在的漏洞入手,從而給盜號者一個教訓。
那麼這個漏洞是什麼呢?
從此前對「啊拉QQ大盜」的分析中可以看到,配置部分填寫了收取QQ號碼信息郵件的郵箱帳號和密碼,而郵箱的帳號和密碼都是明文保存在木馬程序中的。因此,我們可以從生成的木馬程序中找到盜號者的郵箱帳號和密碼。進而輕松控制盜號者的郵箱,讓盜號者偷雞不成反蝕把米。
提示:以上漏洞僅存在於將QQ號碼信息以郵件發送方式的木馬,如果在配置「啊拉QQ大盜」的過程中選擇使用網站接收的方式則不存在該漏洞。
2、網路嗅探,反奪盜號者郵箱
當木馬截取到QQ號碼和密碼後,會將這些信息以電子郵件的形式發送到盜號者的郵箱,我們可以從這里入手,在木馬發送郵件的過程中將網路數據包截取下來,這個被截獲的數據包中就含有盜號者郵箱的帳號和密碼。截取數據包時我們可以使用一些網路嗅探軟體,這些嗅探軟體可以很輕松得截取數據包並自動過濾出密碼信息。
·x-sniff
x-sniff是一款命令行下的嗅探工具,嗅探能力十分強大,尤其適合嗅探數據包中的密碼信息。
將下載下來的x-sniff解壓到某個目錄中,例如「c:\」,然後運行「命令提示符」,在「命令提示符」中進入x-sniff所在的目錄,然後輸入命令「xsiff.exe
-pass -hide -log
pass.log」即可(命令含義:在後台運行x-sniff,從數據包中過濾出密碼信息,並將嗅探到的密碼信息保存到同目錄下的pass.log文件中)。
嗅探軟體設置完畢,我們就可以正常登錄QQ。此時,木馬也開始運行起來,但由於我們已經運行x-sniff,木馬發出的信息都將被截取。稍等片刻後,進入x-sniff所在的文件夾,打開pass.log,便可以發現x-sniff已經成功嗅探到郵箱的帳戶和密碼。
·sinffer
可能很多朋友對命令行下的東西都有一種恐懼感,所以我們可以使用圖形化的嗅探工具來進行嗅探。例如適合新手使用的sinffer。
運行sinffer之前,我們需要安裝WinPcap驅動,否則sinffer將不能正常運行。
運行sinffer。首先我們需要為sinffer.exe指定一塊網卡,點擊工具欄上的網卡圖標,在彈出的窗口中選擇自己使用的網卡,點「OK」後即可完成配置。確定以上配置後,點擊sinffer工具欄中的「開始」按鈕,軟體即開始了嗅探工作。
接下來,我們正常登陸QQ,如果嗅探成功,就會在sinffer的界面中出現捕獲的數據包,其中郵箱帳號密碼信息被很清晰得羅列了出來。
得到盜號者的郵箱帳號和密碼以後,我們可以將其中的QQ號碼信息郵件全部刪除,或者修改他的郵箱密碼,給盜號者一個教訓,讓我們菜鳥也正義一把。
如果你看到最後你會看到這句話的:小心這些軟體,裡面有毒的。
⑵ 如何爬取URL不變的網站內容
步驟如下:1、下載數據採集工具 2、輸入你要採集的網址,等它自動識別,然後點擊啟動,然後等採集完,免費導出結果 3、如果搞不定,看一下官網視頻手把手講解視頻(免費的),預計花費幾十分鍾 4、重復步驟2,遇到問題稍作手動修改
⑶ python怎麼爬取簡書用戶名
初步的思路
今天在用Scrapy寫代碼的時候,對網頁的結構也有了大致的分析,再加上之缺凱扮前羅羅攀的思路,初步我是通過專題入口
熱門專題
image.png
image.png
專題管理員 (一般粉絲、文章、字數、收獲喜歡、這幾項數據都非常漂亮)
image.png
image.png
以上紅框里的數據項就是我需要爬取的欄位
但是以上的思路存在一點的問題:
存在一些簡書用戶並不是一些熱門專題的管理員,但是其人氣粉絲量也很高,這個思路可能無法將這些用戶爬取下來
進階的思路
熱門專題
專題關注的人
專題孫姿關注的人的動態
推薦伏灶作者 粉絲信息
image.png
image.png
image.png
優點:
數據大而全,基本包含了99%的用戶(個人猜測,不嚴謹)
缺點:
因為許多用戶不止關注一個專題,而且其中包含了大量的新注冊用戶(數據很多為空),並且也有大量重復數據需要去重
代碼部分:
jianshu.py 還在調試階段,待更新...
# -*- coding: utf-8 -*-
import sys
import json
import requests
import scrapy
import re
from lxml import etree
from scrapy.http import Request
reload(sys)
sys.path.append('..')
sys.setdefaultencoding('utf-8')
class jianshu(scrapy.Spider):
name = 'jianshu'
# topic_category = ['city']
topic_category = ['recommend', 'hot', 'city']
base_url = 'lections?page=%s&order_by=%s'
cookies={
'UM_distinctid': '15b89d53a930-02ab95f11ccae2-51462d15-1aeaa0-15b89d53a9489b',
'CNZZDATA1258679142': '1544557204-1492664886-%7C1493280769',
'_session_id': '%3D%3D--',
'remember_user_token':'Q3LjYwODEwNzgiXQ%3D%3D--',
'_ga': 'GA1.2.2016948485.1492666105',
'_gid': 'GA1.2.382495.1494550475',
'Hm_lpvt_': '1494550475',
'Hm_lvt_': '1494213432,1494213612,1494321303,1494387194'
}
headers = {
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept - Language': 'zh - CN, zh;q = 0.8',
'Connection': 'close',
'Cookie': 'UM_distinctid=15b89d53a930-02ab95f11ccae2-51462d15-1aeaa0-15b89d53a9489b; CNZZDATA1258679142=1544557204-1492664886-%7C1493280769; remember_user_token=Q3LjYwODEwNzgiXQ%3D%3D--; _ga=GA1.2.2016948485.1492666105; _gid=GA1.2.824702661.1494486429; _gat=1; Hm_lvt_=1494213432,1494213612,1494321303,1494387194; Hm_lpvt_=1494486429; _session_id=%3D%3D--',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36',
'Host':'www.jianshu.com',
"X-Requested-With": 'XMLHttpRequest'
}
def get_total_page(self):
#獲取專題總頁數 包含3個字典的列表 [{"hot": xx}, {"recommend":xx}, {"city": xx}]
total_page_list = []
for order in self.topic_category:
order = order.decode('utf-8')
total_page = 100
dict = {}
for page in range(1, total_page):
url = self.base_url % (page, order)
html = requests.get(url, headers=self.headers).content
selector = etree.HTML(html)
#print html
try:
elements = selector.xpath('//*[@id="list-container"]/div[1]/div/h4/a/text()')[0]
if elements is not Exception:
continue
except Exception :
dict['total_page'] = page - 1
dict['category'] = order
break
total_page_list.append(dict)
return total_page_list
def get_topic_info(self):
#獲取專題信息
topic_info_list = []
total_page_list = self.get_total_page()
base_url = self.base_url
for dict in total_page_list:
category = dict['category']
total_page = int(dict['total_page'])
for page in range(1, total_page + 1):
url = base_url % (page, category)
html = requests.get(url, headers=self.headers,cookies=self.cookies).content
selector = etree.HTML(html)
topic_href = selector.xpath('//*[@id="list-container"]')[0]
for href in topic_href:
dict = {}
topic_name = href.xpath('./div/h4/a/text()')[0]
topic_url = "www.jianshu.com" + href.xpath('./div/h4/a/@href')[0]
topic_img_url = href.xpath('./div/a/img/@src')[0]
img_num = topic_img_url.split("/")[5]
dict['topic_name'] = topic_name
dict['topic_url'] = topic_url
#
dict['img_num'] = img_num
topic_info_list.append(dict)
return topic_info_list
def get_topic_admin_info(self):
#獲取管理員信息
topic_admin_info_list = []
topic_info_list = self.get_topic_info()
for d in topic_info_list:
img_num = str(d['img_num'])
base_url = "s/editors_and_subscribers" % img_num
base_url_response = requests.get(base_url, headers=self.headers, cookies=self.cookies)
json_data_base = json.loads(base_url_response.text.decode('utf-8'))
editors_total_pages = json_data_base['editors_total_pages']
for page in range(1, int(editors_total_pages) + 1):
if page == 1:
editors = json_data_base['editors']
for editor in editors:
dict = {}
dict['nickname'] = editor['nickname']
dict['slug'] = editor['slug']
topic_admin_info_list.append(dict)
else:
try:
url = "}/editors?page={}".format(img_num, page)
response = requests.get(url,headers=self.headers,cookies=self.cookies)
json_data = json.loads(response.text.decode('utf-8'))
editors = json_data['editors']
for editor in editors:
dict = {}
dict['nickname'] = editor['nickname']
dict['slug'] = editor['slug']
topic_admin_info_list.append(dict)
except Exception:
pass
return topic_admin_info_list
def get_followers_following_list(self):
# 獲取管理員粉絲列表
followers_list = []
topic_admin_list = self.get_topic_admin_info()
followers_base_url = "s/%s/followers"
for dict in topic_admin_list:
url = followers_base_url % dict['slug']
headers = self.headers
headers['Referer'] = url
headers['DNT'] = '1'
response = requests.get(url, headers=headers, cookies=self.cookies).content
total_followers = re.fi
⑷ 如何用爬蟲爬取網頁上的數據
用爬蟲框架Scrapy, 三步
定義item類
開發spider類
開發pipeline
如果你想要更透的信息,你可以參考《瘋狂python講義》
⑸ python爬蟲項目實戰:爬取用戶的所有信息,如性別、年齡等
python爬蟲項目實戰:
爬咐跡鏈取糗事網路用戶的所有信息,包括用戶名、性別、年齡、內容等等。
10個步驟實現項目功能,下面開始實例講解:
1.導入模塊
import re
import urllib.request
from bs4 import BeautifulSoup
2.添加頭文件,防止爬取過程被拒絕鏈接
def qiuShi(url,page):
################### 模擬成高仿度瀏覽器的行為 ##############
heads ={
'Connection':'keep-alive',
'Accept-Language':'zh-CN,zh;q=0.9',
'Accept':'text/html,application/xhtml+xml,application/xml;
q=0.9,image/webp,image/apng, / ;q=0.8',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
}
headall = []
for key,value in heads.items():
items = (key,value)
headall.append(items)
opener = urllib.request.build_opener()
opener.addheaders = headall
urllib.request.install_opener(opener)
data = opener.open(url).read()().decode()
################## end ########################################
3.創州鉛建soup解析器對象
soup = BeautifulSoup(data,'lxml')
x = 0
4.開始使用BeautifulSoup4解析器提取用戶名信息
############### 獲取用戶名 ########################
name = []
unames = soup.find_all('h2')
for uname in unames:
name.append(uname.get_text())
#################end#############################
5.提取發表的內容信息
############## 發表的內容 #########################
cont = []
data4 = soup.find_all('div',class_='content')
data4 = str(data4)
soup3 = BeautifulSoup(data4,'lxml')
contents = soup3.find_all('span')
for content in contents:
cont.append(content.get_text())
##############end####################################
6.提取搞笑指數
#################搞笑衡孫指數##########################
happy = []
data2 = soup.find_all('span',class_="stats-vote")
data2 = str(data2) # 將列表轉換成字元串形式才可以使用
soup1 = BeautifulSoup(data2,'lxml')
happynumbers = soup1.find_all('i',class_="number")
for happynumber in happynumbers:
happy.append(happynumber.get_text())
##################end#############################
7.提取評論數
############## 評論數 ############################
comm = []
data3 = soup.find_all('a',class_='qiushi_comments')
data3 = str(data3)
soup2 = BeautifulSoup(data3,'lxml')
comments = soup2.find_all('i',class_="number")
for comment in comments:
comm.append(comment.get_text())
############end#####################################
8.使用正則表達式提取性別和年齡
######## 獲取性別和年齡 ##########################
pattern1 = '<div class="articleGender (w ?)Icon">(d ?)</div>'
sexages = re.compile(pattern1).findall(data)
9.設置用戶所有信息輸出的格局設置
################## 批量輸出用戶的所以個人信息 #################
print()
for sexage in sexages:
sa = sexage
print(' ' 17, '= = 第', page, '頁-第', str(x+1) + '個用戶 = = ',' ' 17)
print('【用戶名】:',name[x],end='')
print('【性別】:',sa[0],' 【年齡】:',sa[1])
print('【內容】:',cont[x])
print('【搞笑指數】:',happy[x],' 【評論數】:',comm[x])
print(' ' 25,' 三八分割線 ',' ' 25)
x += 1
###################end##########################
10.設置循環遍歷爬取13頁的用戶信息
for i in range(1,14):
url = ' https://www.qiushike.com/8hr/page/'+str(i)+'/'
qiuShi(url,i)
運行結果,部分截圖:
⑹ 如何通過網路爬蟲獲取網站數據
這里以python為例,簡單介紹一下如何通過python網路爬蟲獲取網站數據,主要分為靜態網頁數據的爬埋山差取和動態網頁數據的爬取,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
靜態網頁數據
這里的數據都嵌套在網頁源碼中,所以直接requests網頁源碼進行解析就行,下面我簡單介紹一下,這里以爬取糗事網路上的數據為例:
1.首先,打開原網頁,如下,這里假設要爬取的欄位包括昵稱、內容、好笑數和評論數:
接著查看網頁源碼,如下,可以看的出來,所有的數據都嵌套在網頁中:
2.然後針對以上網頁結構,我們就可以直接編寫爬蟲代碼,解析網頁並提取出我們需要的數據了,測試代碼如下,非常簡單,主要用到requests+BeautifulSoup組合,其中requests用於獲取網頁源碼,BeautifulSoup用於解析網頁提取數據:
點擊運行這個程序,效果如下,已經成功爬取了到我們需要的數據:
動態網頁數據
這里的數據都沒有在網頁源碼中(所以直接請求頁面是獲取不到任何數據的),大部分情況下都是存儲在一唯唯個json文件中,只有在網頁更新的時候,才會載入數據,下面我簡單介紹一下這種方式,這里以爬取人人貸上面的數據為例:
1.首先,打開原網頁,如下,這里假設要爬取的數據包括年利率,借款標題,期限,金額和進度:
接著按F12調出開發者工具,依次點擊「Network」->「XHR」,F5刷新頁面,就可以找打動態載入的json文件,如下,也就是我們需要爬彎皮取的數據:
2.然後就是根據這個json文件編寫對應代碼解析出我們需要的欄位信息,測試代碼如下,也非常簡單,主要用到requests+json組合,其中requests用於請求json文件,json用於解析json文件提取數據:
點擊運行這個程序,效果如下,已經成功爬取到我們需要的數據:
至此,我們就完成了利用python網路爬蟲來獲取網站數據。總的來說,整個過程非常簡單,python內置了許多網路爬蟲包和框架(scrapy等),可以快速獲取網站數據,非常適合初學者學習和掌握,只要你有一定的爬蟲基礎,熟悉一下上面的流程和代碼,很快就能掌握的,當然,你也可以使用現成的爬蟲軟體,像八爪魚、後羿等也都可以,網上也有相關教程和資料,非常豐富,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
⑺ 如何爬取網站上的某一信息
兩類網站可以用不同的方法去爬取
一、開放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。
⑻ 如何用 Python 爬取需要登錄的網站
最近我必須執行一項從一個需要登錄的網站上爬取一些網頁的操作。它沒有我想像中那麼簡單,因此我決定為它寫一個輔助教程。
在本教程中,我們將從我們的bitbucket賬戶中爬取一個項目列表。
教程中的代碼可以從我的Github中找到。
我們將會按照以下步驟進行:
提取登錄需要的詳細信息
執行站點登錄
爬取所需要的數據
在本教程中,我使用了以下包(可以在requirements.txt中找到):
Python
1
2
requests
lxml
步驟一:研究該網站
打開登錄頁面
進入以下頁面 「bitbucket.org/account/signin」。你會看到如下圖所示的頁面(執行注銷,以防你已經登錄)
仔細研究那些我們需要提取的詳細信息,以供登錄之用
在這一部分,我們會創建一個字典來保存執行登錄的詳細信息:
1. 右擊 「Username or email」 欄位,選擇「查看元素」。我們將使用 「name」 屬性為 「username」 的輸入框的值。「username」將會是 key 值,我們的用戶名/電子郵箱就是對應的 value 值(在其他的網站上這些 key 值可能是 「email」,「 user_name」,「 login」,等等)。
2. 右擊 「Password」 欄位,選擇「查看元素」。在腳本中我們需要使用 「name」 屬性為 「password」的輸入框的值。「password」 將是字典的 key 值,我們輸入的密碼將是對應的 value 值(在其他網站key值可能是 「userpassword」,「loginpassword」,「pwd」,等等)。
3. 在源代碼頁面中,查找一個名為 「csrfmiddlewaretoken」 的隱藏輸入標簽。「csrfmiddlewaretoken」 將是 key 值,而對應的 value 值將是這個隱藏的輸入值(在其他網站上這個 value 值可能是一個名為 「csrftoken」,「authenticationtoken」的隱藏輸入值)。列如:「」。
最後我們將會得到一個類似這樣的字典:
Python
1
2
3
4
5
payload = {
"username": "<USER NAME>",
"password": "<PASSWORD>",
"csrfmiddlewaretoken": "<CSRF_TOKEN>"
}
請記住,這是這個網站的一個具體案例。雖然這個登錄表單很簡單,但其他網站可能需要我們檢查瀏覽器的請求日誌,並找到登錄步驟中應該使用的相關的 key 值和 value 值。
步驟2:執行登錄網站
對於這個腳本,我們只需要導入如下內容:
Python
1
2
import requests
from lxml import html
首先,我們要創建session對象。這個對象會允許我們保存所有的登錄會話請求。
Python
1
session_requests = requests.session()
第二,我們要從該網頁上提取在登錄時所使用的 csrf 標記。在這個例子中,我們使用的是 lxml 和 xpath 來提取,我們也可以使用正則表達式或者其他的一些方法來提取這些數據。
Python
1
2
3
4
5
login_url = "n/?next=/"
result = session_requests.get(login_url)
tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]
**更多關於xpath 和lxml的信息可以在這里找到。
接下來,我們要執行登錄階段。在這一階段,我們發送一個 POST 請求給登錄的 url。我們使用前面步驟中創建的 payload 作為 data 。也可以為該請求使用一個標題並在該標題中給這個相同的 url添加一個參照鍵。
Python
1
2
3
4
5
result = session_requests.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)
步驟三:爬取內容
現在,我們已經登錄成功了,我們將從bitbucket dashboard頁面上執行真正的爬取操作。
Python
1
2
3
4
5
url = '/overview'
result = session_requests.get(
url,
headers = dict(referer = url)
)
為了測試以上內容,我們從 bitbucket dashboard 頁面上爬取了項目列表。我們將再次使用 xpath 來查找目標元素,清除新行中的文本和空格並列印出結果。如果一切都運行 OK,輸出結果應該是你 bitbucket 賬戶中的 buckets / project 列表。
Python
1
2
3
4
5
tree = html.fromstring(result.content)
bucket_elems = tree.findall(".//span[@class='repo-name']/")
bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]
print bucket_names
你也可以通過檢查從每個請求返回的狀態代碼來驗證這些請求結果。它不會總是能讓你知道登錄階段是否是成功的,但是可以用來作為一個驗證指標。
例如:
Python
1
2
result.ok # 會告訴我們最後一次請求是否成功
result.status_code # 會返回給我們最後一次請求的狀態
⑼ 如何用 Python 爬取需要登錄的網站
可以嘗試添加相關cookie來試著去訪問。自己先本地登錄一下,然後抓取頁面cookie,然後構造相應的請求,讓他看起來像是登錄過的,如果網站驗證的不是特別嚴的話,是可以成功的。
還有一種方法,就是用Selenium框架,他會打開一個瀏覽器,然後訪問指定url。但是還是免不了需要登錄一次,但是登錄過程,輸入賬號密碼和點擊登錄按鈕都是你可以模擬的。具體你可以參照官方文檔。
⑽ 如何用python爬取網站數據
這里簡單介紹一下吧,以抓取網站靜態、動態2種數據為慧返拍例,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
抓取網站靜態數據(數據在網頁源碼中):以糗事網路網站數據為例
1.這里假設我們抓取的數據如下,主要包括用戶昵稱、內容、好笑數和評論數這4個欄位,如下:
對應的網頁源碼如下,包含我們所需要的數據:
2.對應網頁結構,主要代碼如下,很簡單,主要用到requests+BeautifulSoup,其中requests用於請求頁面,BeautifulSoup用於解析頁面:
程序運行截圖如下,已經成功爬取到數據:
抓取網站動態數據(數據不在網頁源碼中,json等文件中):以人人貸網站數據為例
1.這里假設我們爬取的是債券數據,主要包括年利率世型、借款標題、期限、金額和進度這5個欄位信息,截圖如下:
打開網頁源碼中,可以發現數據不在網頁源碼中,按F12抓包分析時,才發現在一個json文件中,如下:
2.獲取到json文件的url後,我們就可以爬取對應數據了,這里使用的包與上面類似,因為是json文件,所以還用了json這個包(解析json),主要內容如下:
程序運行截圖如下,前羨已經成功抓取到數據:
至此,這里就介紹完了這2種數據的抓取,包括靜態數據和動態數據。總的來說,這2個示例不難,都是入門級別的爬蟲,網頁結構也比較簡單,最重要的還是要會進行抓包分析,對頁面進行分析提取,後期熟悉後,可以藉助scrapy這個框架進行數據的爬取,可以更方便一些,效率更高,當然,如果爬取的頁面比較復雜,像驗證碼、加密等,這時候就需要認真分析了,網上也有一些教程可供參考,感興趣的可以搜一下,希望以上分享的內容能對你有所幫助吧。