日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

數(shù)據(jù)抓取的藝術(shù)(一):Selenium+Phantomjs數(shù)據(jù)抓取環(huán)境配置

 看見就非常 2015-09-18
  數(shù)據(jù)抓取是一門藝術(shù),和其他軟件不同,世界上不存在完美的、一致的、通用的抓取工具。為了不同的目的,需要定制不同的代碼。不過,我們不必Start from Scratch,已經(jīng)有許多的基本工具、基本方法和基礎(chǔ)框架可供使用。不同的工具、不同的方法、不同的框架的特點(diǎn)也不同。了解這些工具、方法和框架是首要任務(wù),接下來就需要明白它們的差異都在哪里、什么情境該用什么東東,最后才是析出規(guī)則、編寫代碼、運(yùn)行程序來抓取數(shù)據(jù)。所以說,其實(shí)數(shù)據(jù)抓取的學(xué)習(xí)路線,不但很長(zhǎng)而且很雜。

    為了一個(gè)特定的目的,我需要爬取Google的搜索數(shù),和其他情況不同:人家是特定關(guān)鍵詞,一頁一頁地爬結(jié)果;我的是N多關(guān)鍵詞,一次一個(gè)地搜索,只需要返回的搜索條數(shù)。事實(shí)上,一共有153個(gè)關(guān)鍵詞,但每個(gè)關(guān)鍵詞都需要和所有關(guān)鍵詞握手組配成一對(duì)待檢詞組。于是,大家可以試想一下,一個(gè)153行、153列的大表格,每一個(gè)空白都等著填,這就將是153*153=23409次,也就是約23409/2=11704次,經(jīng)測(cè)試每爬取一個(gè)共詞頁面的結(jié)果并存入Excel,需要花費(fèi)4秒的時(shí)間。這意味著,以單人單線程的方式需要11704*4/3600=13個(gè)小時(shí),才能跑完。

    這些內(nèi)容我還會(huì)在后續(xù)博文中詳述,現(xiàn)在先介紹上述目的情境下我使用的技術(shù)框架及其安裝配置過程。

一、技術(shù)架構(gòu)
    [Python2.7 + Pip + Selenium + Phantomjs]
    Selenium+Phantomjs,最初這對(duì)兄弟不是一家的,后來發(fā)現(xiàn)二者志趣相投、互有好感,于是結(jié)拜為兄弟,住進(jìn)了Selenium家里。(這種說法有待商榷)
    看看介紹:
    Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE、Mozilla Firefox、Chrome等。
    Phantom JS是一個(gè)服務(wù)器端的 JavaScript API 的 WebKit。其支持各種Web標(biāo)準(zhǔn): DOM 處理, CSS 選擇器, JSON, Canvas, 和 SVG。

二、環(huán)境搭建
   (1)安裝Python從略,我用的版本是2.7.4(WinXP和Win7的32位平臺(tái))。
   (2)由于發(fā)現(xiàn)Pip比easy_install優(yōu)秀,我便使用我已經(jīng)安裝的easy_install來安裝pip。
  1. easy_install pip
    如圖所示:

   (3)安裝Phantomjs。
   到Phantomjs的官方網(wǎng)站http:///download.html,下載“Download phantomjs-1.9.0-windows.zip (7.1 MB) ”。隨后打開這個(gè)壓縮包,將phantomjs.exe這一個(gè)文件解壓到系統(tǒng)路徑所能找到的地方,由于之前我已經(jīng)將“C:\Python27\Scripts”目錄添加入PATH之中,所以我就直接解壓到這個(gè)目錄。如圖所示:


     至此,就已經(jīng)在Win的環(huán)境下配置好了環(huán)境。

   三、測(cè)試
    隨意新建一個(gè)文件,并加入如下代碼:
  1. from selenium import webdriver

  2. driver = webdriver.PhantomJS()
  3. driver.get('www.baidu.com')
  4. data = driver.find_element_by_id('cp').text
  5. print data
    Check Out,看看是不是這個(gè)結(jié)果:

    其實(shí),我一直不喜歡彈出來的DOS黑框,覺得這東東太影響視覺而且可能更耗時(shí),但是在我看了官方DOC后:

   我發(fā)現(xiàn),是不能直接藏匿DOS彈框的。So,只好這般啦。
   
    OK,it's time to "Enjoy yourself"......

    也請(qǐng)參看下文:數(shù)據(jù)抓取的藝術(shù)(二):數(shù)據(jù)抓取程序優(yōu)化及抓取Google之心得

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多