2024用Python寫網(wǎng)絡(luò)爬蟲_第1頁
2024用Python寫網(wǎng)絡(luò)爬蟲_第2頁
2024用Python寫網(wǎng)絡(luò)爬蟲_第3頁
2024用Python寫網(wǎng)絡(luò)爬蟲_第4頁
2024用Python寫網(wǎng)絡(luò)爬蟲_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

網(wǎng)絡(luò)爬蟲Python和數(shù)據(jù)分析什么是網(wǎng)絡(luò)爬蟲?網(wǎng)絡(luò)爬蟲是一個自動提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件爬蟲有什么用?做為通用搜索引擎網(wǎng)頁收集器。(google,baidu)做垂直搜索引擎.(找工作的搜索引擎:,數(shù)據(jù)來源于:,

,

等等)科學(xué)研究:在線人類行為,在線社群演化,人類動力學(xué)研究,計量社會學(xué),復(fù)雜網(wǎng)絡(luò),數(shù)據(jù)挖掘,等領(lǐng)域的實證研究都需要大量數(shù)據(jù),網(wǎng)絡(luò)爬蟲是收集相關(guān)數(shù)據(jù)的利器。偷窺,hacking,發(fā)垃圾郵件……(《googlehack》….)爬蟲是搜索引擎的第一步也是最容易的一步網(wǎng)頁搜集建立索引查詢排序用什么語言寫爬蟲?C,C++。高效率,快速,適合通用搜索引擎做全網(wǎng)爬取。缺點,開發(fā)慢,寫起來又臭又長,例如:天網(wǎng)搜索源代碼。腳本語言:Perl,Python,Java,

Ruby。簡單,易學(xué),良好的文本處理能方便網(wǎng)頁內(nèi)容的細致提取,但效率往往不高,適合對少量網(wǎng)站的聚焦爬取C#?(貌似信息管理的人比較喜歡的語言)我曾經(jīng)用來寫過爬蟲的語言Perl:

古老的腳本語言,hack

語言,被用來寫爬蟲有著悠久的歷史,因此,書本支持相當(dāng)豐富:《spidering

hacks》,《Perl

&

LWP》;強大的文本處理能力,數(shù)據(jù)庫支持能力。缺點:有點怪異。Python:相對年輕一點的語言。對于爬蟲來說各方面能力還行,并且還在完善中,沒有Perl那樣有專門的爬蟲書籍,不過網(wǎng)上能搜到一些文章。為什么最終選擇Python?跨平臺,對Linux和windows都有不錯的支持??茖W(xué)計算,數(shù)值擬合:Numpy,Scipy可視化:2d:Matplotlib(做圖很漂亮),3d:Mayavi2復(fù)雜網(wǎng)絡(luò):Networkx統(tǒng)計:與R語言接口:Rpy交互式終端網(wǎng)站的快速開發(fā)?從一個簡單的Python爬蟲開始說明:加說明語句時要注意#需要英文編碼里的,而不能是中文輸入法中的#號,所以添加中文說明時先在英文輸入法下打入#號后再切換到中文輸入………瀚海星云Pie

版的網(wǎng)頁部分代碼Pie版的Html樹部分結(jié)構(gòu)利用BeautifulSoup剖析樹FindAll()是最方便最好用的函數(shù)頁面中的link通用搜索策略深度優(yōu)先廣度優(yōu)先現(xiàn)實中的策略是多種多樣的因為瀚海星云link有很簡單的規(guī)律,每頁遞減20,所以利用這個規(guī)律設(shè)置每次賦入的URL,這樣爬完了PIE版所有帖子運行結(jié)果有亂

碼!!爬取中文網(wǎng)頁常有的問題:不規(guī)格的編碼模式解決方法:編碼轉(zhuǎn)換最后的結(jié)果Perfect!請溫柔的對待瀚海星云!!設(shè)置延遲時間(對于一個論壇,如果假設(shè)一個真實的瀏覽者每10秒翻開一個新的網(wǎng)頁的話,一個不延時的爬蟲每秒可以抓10個網(wǎng)頁,這樣一個爬蟲相當(dāng)于占用了100個人的帶寬?。┰谖缫古廊】梢赃m當(dāng)加快速度道上的規(guī)矩:用Mysql存儲數(shù)據(jù)先要在自己數(shù)據(jù)庫里建立一個空的表,這里,這里我已經(jīng)建立了一個名為lilybbs的數(shù)據(jù)庫,表名為hunan_a導(dǎo)入相應(yīng)的模塊與相應(yīng)的數(shù)據(jù)庫連接寫入數(shù)據(jù)庫里的結(jié)果統(tǒng)計和做圖這部分主要用于科研方 面,利用爬取到的數(shù)據(jù) 做一些簡單的統(tǒng)計工作右圖是某論壇的回復(fù)網(wǎng)絡(luò),使用python的networkx包做的。Pylab

是matplotlib作圖包的一部分左圖是某

blog四年間每天發(fā)表文章的數(shù)量左一是某blog網(wǎng)站每個blog評論數(shù)的統(tǒng)計,x是blog評論數(shù)量,y是有這樣數(shù)量的

blog的數(shù)量。可以看到是標(biāo)準(zhǔn)的“power-law”分布,冪指數(shù)為-1.2左右,擬合使用了Scipy包的optimize.leastsq,函數(shù),具體可見scipycookbook頁面的fittingdata一欄左二是blog的commentnetworks

的入度與出度的散點圖,也就是每個點的坐

標(biāo)x,y分別代表某個人獲得的評論和發(fā)出的評論數(shù)。顏色代表這樣點的數(shù)量。本圖使用了matplotlib中的

hexbin函數(shù)高級主題(一):編寫更健壯的爬蟲偽裝成瀏覽器容錯高級主題(二):由內(nèi)嵌腳本產(chǎn)生的動態(tài)網(wǎng)頁的爬取如何爬取 像左圖這 樣的網(wǎng)頁 呢?它顯示的 內(nèi)容并不 會呈現(xiàn)在

html文件 里。高級主題(三):SQLAlchemyMysql這樣關(guān)系型數(shù)據(jù)庫的缺點:在表示復(fù)雜網(wǎng)絡(luò)這樣一對多,和多對多的關(guān)系時,非常冗余;一旦需要做比較復(fù)雜的統(tǒng)計,sql語句會變得異常復(fù)雜。當(dāng)你越關(guān)注性能,就會發(fā)現(xiàn)SQL

數(shù)據(jù)庫離對象集合越來越遠;當(dāng)你越關(guān)注抽象,就會發(fā)現(xiàn)對象集合離表和行這些概念越來越遠。SQLAlchemy

將致力于盡量包容這兩個世界。SQLAlchemy

并不把數(shù)據(jù)庫簡單地視為數(shù)據(jù)表的集合;它把它們看作是關(guān)系代數(shù)引擎。它的關(guān)系對象映射能夠讓類以不同的方式映射到數(shù)據(jù)庫。

SQL

工具包也不光能夠?qū)?shù)據(jù)表進行select

操作——你還能對連接、子查詢和聯(lián)合進行select。這樣數(shù)據(jù)庫關(guān)系和領(lǐng)域?qū)ο竽P椭g的耦合從一開始就得以很好地解開,使得兩個領(lǐng)域都得以發(fā)揮其各自的極致。我寫過的某個繁瑣的調(diào)用號稱能更簡潔明了的SQLAlchemy會成為mysql的替代品么?高級主題(四):統(tǒng)計利器R語言求方差,聚類,判

別,擬合,團簇探測,時間序列分析,生存分析,甚至復(fù)雜網(wǎng)絡(luò),這些R語言里都有很好的函數(shù)可以直接使用R語言,也可以利用Rpy在p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論