多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 【Python數據挖掘課程】一.安裝Python及爬蟲入門介紹

【Python數據挖掘課程】一.安裝Python及爬蟲入門介紹

來源:程序員人生   發布時間:2016-12-14 09:03:05 閱讀次數:5302次
        最近由于需要給大數據金融學院的學生講授《Python數據發掘及大數據分析》的課程,所以在這里,我將結合自己的上課內容,詳細講授每一個步驟。作為助教,我更希望這門課程以實戰為主,同時按小組劃分學生,每一個小組最后都提交1個基于Python的數據發掘及大數據分析相干的成果。但是前面這節課沒有在機房上,所以我在CSDN也將開設1個專欄,用于對該課程的補充。
        希望該文章對你有所幫助,特別是對大數據或數據發掘的初學者,很開心和夏博、小民1起分享該課程,上課的感覺真的挺不錯的,挺享受的。我也將認真對待每個我的學生,真的好想把自己的所學的所有知識都給予你們。同時由于學生來自不同的學院,有的乃至沒有接觸過編程,所以這門課程也將采取從零單排的情勢講述。
        這門課程圍繞下圖所示的內容進行展開及實戰。
        課程資源:



1. 大數據及數據發掘基礎

        第1部份主要簡單介紹3個問題(覺得無聊的直接調至第2部份):
        1、甚么是大數據?
        2、甚么是數據發掘?
        3、大數據和數據發掘的區分?

        由于前面幾節課老師普及了大數據等1些基礎知識,這里我并沒有詳細介紹,只是給幾張圖片,讓大家簡單了解下大數據和數據發掘相干的基礎概念,我分享更多的是實戰和編程。
        <1>.大數據(Big Data)
        大數據(big data)指沒法在1定時間范圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力來適應海量、高增長率和多樣化的信息資產。
        下圖是大數據經典的4V特點。

  

        IBM大數據庫框架及可視化技術,大數據經常使用:Hadoop、Spark,現在更多的是實時數據分析,包括淘寶、京東、附近美食等。


        下圖是大數據的1些利用。




        說到大數據,就不能不提Hadoop,而說到Hadoop,又不能不提Map-Reduce。


        MapReduce是1個軟件框架由上千個商用機器組成的大集群上,并以1種可靠的,具有容錯能力的方式并行地處理上TB級別的海量數據集。MapReduce的思想是“分而治之”。Mapper負責“分,Reducer負責對map階段的結果進行匯總。

        <2>.數據發掘(Data Mining)
        數據發掘(Data Mining):數據庫、機器學習、人工智能、統計學的交叉學科。
        數據發掘需要發現有價值的知識,同時最頂端都是具有智慧的去發現知識及有價值的信息。

  

        由于這門課程主要是針對網頁數據進行的大數據分析,需要Web Mining分類以下:



        Web發掘主要分為3類:Web日志發掘、Web內容發掘、Web結構發掘。


        <3>.機器學習
        講到機器學習和數據發掘相干的知識,我通常都會補充兩幅圖片,感覺真的很棒。很想象的表示了計算機靈能化與人類傳統知識的類比。





       推薦文章:機器學習:“1文讀懂機器學習,大數據/自然語言處理/算法全有了”



2. 安裝Python及基礎知識

       <1>.安裝Python
        在開始使用Python編程之前,需要介紹Python的安裝進程。python解釋器在Linux中可之內置使用安裝,windows中需要去http://www.python.org官網downloads頁面下載。具體步驟以下:
        第1步:打開Web閱讀器并訪問http://www.python.org官網;


        第2步:在官網首頁點擊Download鏈接,進入下載界面,選擇Python軟件的版本,作者選擇下載python 2.7.8,點擊“Download”鏈接。
        Python下載地址:
        第3步:選擇文件下載地址,并下載文件。
        第4步:雙擊下載的“python⑵.7.8.msi”軟件,并對軟件進行安裝。


        第5步:在Python安裝向導當選擇默許設置,點擊“Next”,選擇安裝路徑,這里設置為默許的安裝路徑“C:\Python27”,點擊“Next”按鈕,如圖所示。
        注意1:建議將Python安裝在C盤下,通常路徑為C:\Python27,不要存在中文路徑。


        在Python安裝向導當選擇默許設置,點擊“Next”,選擇安裝路徑,這里設置為默許的安裝路徑“C:\Python27”,點擊“Next”按鈕。


        安裝成功后,以下圖所示:



        第6步:假定安裝1切正常,點擊“開始”,選中“程序”,找到安裝成功的Python軟件,如圖所示:

        選中上圖中第3個圖標,即點擊“Python (command line)命令行模式”,運行程序輸入以下代碼:
        print 'hello world'
        
python命令行模式的解釋器會打印輸出“hello world”字符串,以下圖所示。

        選中圖中的第1個圖片,點擊“IDLE (Python GUI)”,即運行Python的集成開發環境(Python Integrated Development Environment,IDLE),運行結果以下圖。
        注意2:建議大家使用IDLE寫腳本,完全的代碼而不是通過命令行模式。



        <2>.Python基礎知識
        這里簡單入門介紹,主要介紹下條件語句、循環語句、函數等基礎知識。
        1、函數及運行
        這里舉個簡單的例子。打開IDLE工具->點擊欄"File"->New File新建文件->命名為test.py文件,在test文件里添加代碼以下:
def fun1(): print 'Hello world' print 'by eastmount csdn' print 'output' fun1() def fun2(val1,val2): print val1 print val2 fun2(8,15)
        保存文件。并在test.py文件里點擊Run->Run Module,輸出結果以下圖所示。


        2、條件語句
        包括單分支、雙分支和多分支語句,if-elif-else。
        (1).單分支語句
        它的基本格式是:
                                 if condition:
                                          statement
                                          statement

        需要注意的是Ptthon中if條件語句條件無需圓括號(),條件后面需要添加冒號,它沒有花括號{}而是使用TAB實現辨別。其中condition條件判斷通常有布爾表達式(True|False 0-假|1-真 非0即真)、關系表達式(>= <= == !=)和邏輯運算表達式(and or not)。
        (2).雙分支語句
        它的基本格式是:
                                  if condition:
                                          statement
                                          statement
                                  else:
                                          statement
                                          statement

        (3).多分支語句
        if多分支由if-elif-else組成,其中elif相當于else if,同時它可使用多個if的嵌套。具體代碼以下所示:

#雙分支if-else count = input("please input:") print 'count=',count if count>80: print 'lager than 80' else: print 'lower than 80' print 'End if-else' #多分支if-elif-else number = input("please input:") print 'number=',number if number>=90: print 'A' elif number>=80: print 'B' elif number>=70: print 'C' elif number>=60: print 'D' else: print 'No pass' print 'End if-elif-else' #條件判斷 sex = raw_input("plz input your sex:") if sex=='male' or sex=='m' or sex=='man': print 'Man' else: print 'Woman'

        3、while循環語句
        while循環語句的基本格式以下:
                                                         while condition:
                                                                 statement
                                                                 statement
                                                         else:
                                                                 statement
                                                                 statement

        其中判斷條件語句condition可以為布爾表達式、關系表達式和邏輯表達式,else可以省略(此處列出為與C語言等區分)。舉個例子:
#循環while計數1+2+..+100 i = 1 s = 0 while i <= 100: s = s+i i = i+1 else: print 'exit while' print 'sum = ',s ''' 輸出結果為:exit while sum = 5050 '''

        4、for循環
        該循環語句的基礎格式為:
                                                 for target in sequences:
                                                         statements

        target表示變量名,sequences表示序列,常見類型有list(列表)、tuple(元組)、strings(字符串)和files(文件).
        Python的for沒有體現出循環的次數,不像C語言的for(i=0;i<10;i++)中i循環計數,Python的for指每次從序列sequences里面的數據項取值放到target里,取完即結束,取多少次循環多少次。其中in為成員資格運算符,檢查1個值是不是在序列中。一樣可使用break和continue跳出循環。
        下面是文件循環遍歷的進程:

#文件循環遍歷3種對照 for n in open('for.py','r').read(): print n, print 'End' for n in open('for.py','r').readlines(): print n, print 'End' for n in open('for.py','r').readline(): print n, print 'End'

        5、課堂講授代碼
        這是我課堂講授的代碼,僅供大家參考:
#coding=utf⑻ import os import string print '貴州財經大學大數據金融學院,大家好!' def fun1(): print 'Hello world' print 'Goodbye!' #計算和 def fun2(n, m): return n+m #輸出結果 fun1() s = fun2(3,8) print 'sum = ' + str(s) print 'sum =', s #判斷語句 u表示unicode字符串 if(s>10): print u'大于10' else: print u'小于等于10' #循環語句 i = 1 s = 0 while i<=100: s = s + i i = i + 1 else: print 'end while' print 'sum =', s ''' 輸出結果為:sum=5050 ''' #for循環 num = [2, 4, 6, 8, 10] for x in num: print x
        輸出結果以下圖所示:


3. 安裝PIP及第3方包

        接下來需要詳解介紹爬蟲相干的知識了,這里主要觸及到下面幾個知識:



        爬蟲主要使用Python(字符串|urllib)+Selenium+PhantomJS+BeautifulSoup。



        在介紹爬蟲及Urllib下載網頁或圖片之前,先交大家如何使用pip安裝第3方的庫。

        PIP

        在介紹介紹它們之前,需要安裝PIP軟件。正如xifeijian大神所說:“作為Python愛好者,如果不知道easy_install或pip中的任何1個的話,那末......”。
        
easy_insall的作用和perl中的cpan,ruby中的gem類似,都提供了在線1鍵安裝模塊的傻瓜方便方式,而pip是easy_install的改進版,提供更好的提示信息,刪除package等功能。老版本的python中只有easy_install,沒有pip。常見的具體用法以下:
easy_install的用法: 1) 安裝1個包 $ easy_install <package_name> $ easy_install "<package_name>==<version>" 2) 升級1個包 $ easy_install -U "<package_name>>=<version>" pip的用法 1) 安裝1個包 $ pip install <package_name> $ pip install <package_name>==<version> 2) 升級1個包 (如果不提供version號,升級到最新版本) $ pip install --upgrade <package_name>>=<version> 3)刪除1個包 $ pip uninstall <package_name>


        第1步:下載PIP軟件
        可以在官網http://pypi.python.org/pypi/pip#downloads下載,同時cd切換到PIP目錄,在通過python setup.py install安裝。而我采取的是下載pip-Win_1.7.exe進行安裝,下載地址以下:
        這里作者提供幾種方法供大家下載:
        http://download.csdn.net/detail/eastmount/9598651

        第2步:安裝PIP軟件




       當提示"pip and virtualenv installed"表示安裝成功,那怎樣測試PIP安裝成功呢?
        
        第3步:配置環境變量
        此時在cmd中輸入pip指令會提示毛病“不是內部或外部命令”。
        注意:兩種解決方法,1種是通過cd ..去到Srcipts環境進行安裝,pip install...
        方法2:另外一種配置Path路徑。
        需要添加path環境變量。PIP安裝完成后,會在Python安裝目錄下添加python\Scripts目錄,即在python安裝目錄的Scripts目錄下,將此目錄加入環境變量中便可!進程以下:


        第4步:使用PIP命令
       下面在CMD中使用PIP命令,“pip list outdate”羅列Python安裝庫的版本信息。


       注意:安裝成功后,會在Python環境中增加Scripts文件夾,包括easy_install和pip。


       PIP安裝進程中可能出現各種問題,1種解決方法是去到python路徑,通過python set_up.py install安裝;另外一種是配置Path環境比例。

       
課堂重點知識:
       第1節課主要想讓大家體會下Python網絡爬蟲的進程及示例。需要安裝的第3方庫主要包括3個:
       pip install httplib2
       pip install urllib
       pip install selenium

 
        在安裝進程中,如果pip install urllib報錯,是由于httplib2包括了,可直接用。


        注意:如果pip安裝報錯ascii編碼問題,需要把計算機名稱從中文修改成英文名。


4. Urllib下載網頁及圖片

        在使用pip install urllib或pip install urllib2后,下面這段代碼是下載網頁。

#coding=utf⑻ import os import urllib import httplib2 import webbrowser as web #爬取在線網站 url = "http://www.baidu.com/" content = urllib.urlopen(url).read() open("baidu.html","w").write(content) #閱讀求打開網站 web.open_new_tab("baidu.html")
        首先我們調用的是urllib2庫里面的urlopen方法,傳入1個URL,這個網址是百度首頁,協議是HTTP協議,固然你也能夠把HTTP換做FTP、FILE、HTTPS 等等,只是代表了1種訪問控制協議,urlopen1般接受3個參數,它的參數以下:
urlopen(url, data, timeout)
        第1個參數url即為URL,第2個參數data是訪問URL時要傳送的數據,第3個timeout是設置超時時間。
        第23個參數是可以不傳送的,data默許為空None,timeout默許為 socket._GLOBAL_DEFAULT_TIMEOUT。
        第1個參數URL是必須要傳送的,在這個例子里面我們傳送了百度的URL,履行urlopen方法以后,返回1個response對象,返回信息便保存在這里面。

response = urllib2.urlopen("http://www.baidu.com") print response.read()
        response對象有1個read方法,可以返回獲得到的網頁內容。
        獲得的網頁本地保存為"baidu.html",通過閱讀器打開以下圖所示:


        然后是需要下載圖片,這里需要學會找到圖片的URL,以下圖百度的LOGO,可以通過閱讀器右鍵"審查元素"或"檢查"來進行定位。


        定位URL后,再通過函數urlretrieve()進行下載。

#coding=utf⑻ import os import urllib import httplib2 import webbrowser as web #爬取在線網站 url = "http://www.baidu.com/" content = urllib.urlopen(url).read() open("baidu.html","w").write(content) #閱讀求打開網站 web.open_new_tab("baidu.html") #下載圖片 審查元素 pic_url = "https://www.baidu.com/img/bd_logo1.png" pic_name = os.path.basename(pic_url) #刪除路徑獲得圖片名字 urllib.urlretrieve(pic_url, pic_name) #本地文件 content = urllib.urlopen("first.html").read() print content #下載圖片 審查元素 pic_url = "imgs/bga1.jpg" pic_name = os.path.basename(pic_url) #刪除路徑獲得圖片名字 urllib.urlretrieve(pic_url, pic_name)

        重點知識:
        urllib.urlopen(url[, data[, proxies]]) :創建1個表示遠程url的類文件對象,然后像本地文件1樣操作這個類文件對象來獲得遠程數據。
        urlretrieve方法直接將遠程數據下載到本地。
        如果需要顯示進度條,則使用下面這段代碼:

import urllib def callbackfunc(blocknum, blocksize, totalsize): '''回調函數 @blocknum: 已下載的數據塊 @blocksize: 數據塊的大小 @totalsize: 遠程文件的大小 ''' percent = 100.0 * blocknum * blocksize / totalsize if percent > 100: percent = 100 print "%.2f%%"% percent url = 'http://www.sina.com.cn' local = 'd:\\sina.html' urllib.urlretrieve(url, local, callbackfunc)



5. HTML網頁基礎知識及審查元素

        HTML DOM是HTML Document Object Model(文檔對象模型)的縮寫,HTML DOM則是專門適用于HTML/XHTML的文檔對象模型。熟習軟件開發的人員可以將HTML DOM理解為網頁的API。它將網頁中的各個元素都看做1個個對象,從而使網頁中的元素也能夠被計算機語言獲得或編輯。


        DOM是以層次結構組織的節點或信息片斷的集合。這個層次結構允許開發人員在樹中導航尋覓特定信息。分析該結構通常需要加載全部文檔和構造層次結構,然后才能做任何工作。由于它是基于信息層次的,因此 DOM 被認為是基于樹或基于對象的。


        HTML DOM 定義了訪問和操作HTML文檔的標準方法。 HTML DOM 把 HTML 文檔顯現為帶有元素、屬性和文本的樹結構(節點樹)。它們都是1個節點(Node),就像公司的組織結構圖1樣。 我們現在從另外一個角度來審視源代碼,first.html的源碼以下:
<html> <head> <title>Python發掘開發</title> </head> <body> 歡迎大家學習《基于Python的Web大數據爬取實戰指南》! <br> </body> </html>
        這個例子的第1個元素就是<html>元素,在這個元素的起始標簽和終止標簽之間,又有幾個標簽分別起始和閉合,包括<head>、<title>和<body>。<head>和<body>標簽是直接被<html>元素包括的,而<title>標簽則包括在<head>標簽內。要描寫1個HTML網頁的這類多層結構,用樹來進行類比是最好的方式。樹形結構以下圖所示:

        重點:
        在網絡爬蟲中,通常需要結合閱讀器來定位元素,閱讀器右鍵通常包括兩個重要的功能:查看源代碼和審查或檢查元素。


        通過審查元素,可以定位到需要爬取圖片或網頁的HTML源文件,通常是table或div的布局,這些HTML標簽通常是成對出現的,如<html></html>、<div></div>等;同時會包括1些屬性id、name、class來指定該標簽。如:
        <div id="content" name="n1" class="cc">....</div>





6. 安裝Selenium及網頁簡單爬取

        Selenium用于Web利用程序測試的工具,摹擬閱讀器用戶操作,通過Locating Elements 定位元素。安裝進程以下圖所示,通過pip install selenium安裝。
        注意:需要cd去到Scripts目錄進行安裝。




         selenium結合閱讀器定位的基本函數包括:


        推薦文章,同時下節課會詳細介紹。
        [python爬蟲] Selenium常見元素定位方法和操作的學習介紹

        第1個基于Selenium爬蟲的代碼,通過調用Firefox閱讀器:

#coding=utf⑻ import os import urllib from selenium import webdriver from selenium.webdriver.common.keys import Keys #Open PhantomJS #driver = webdriver.PhantomJS(executable_path="phantomjs⑴.9.1-windows\phantomjs.exe") driver = webdriver.Firefox() #訪問url driver.get("https://www.baidu.com/") print u'URL:' print driver.current_url #當前鏈接: https://www.baidu.com/ print u'標題:' print driver.title #標題: 百度1下, 你就知道 #print driver.page_source #源代碼 #定位元素,注意u1(數字1)和ul(字母L)區分 print u'\n\n定位元素id:' info1 = driver.find_element_by_id("u1").text print info1 #定位元素 print u'\n\n定位元素xpath:' info3 = driver.find_element_by_xpath("//div[@id='u1']/a") print info3.text
        輸出以下圖所示:



        希望這篇文章對你有所幫助,主要是介紹基本的安裝進程及體會下Python爬蟲知識,后面會陸續詳細介紹相干內容。非常想上好這門課,由于是我的專業方向,另外學生們真的好棒,好認真,用手機錄相、問問題、配環境等等,只要有用心的學生,我定不負你!同時,自己授課思路有些亂,還需加強,但還是挺享受的,畢竟9800,哈哈哈!
        (By:Eastmount 2016-09⑴9 晚上10點  http://blog.csdn.net/eastmount/ )




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 中文一区在线观看 | 色吊丝中文字幕 | 都市激情校园春色亚洲 | 欧美两性人xxxx高清免费 | 亚洲精品久久久久综合91 | 韩国av片永久免费 | 色avav| 2021天天躁夜夜躁狠狠躁 | 国产精品欧美视频另类专区 | 国产精品亚洲综合网站 | 欧美老师 | 久久国产精品一国产精品 | 久久综合久久综合久久 | 好大好湿好硬顶到了好爽(双性) | 日韩欧美高清 | 韩国在线观看免费观看影院 | 日韩一级片在线免费观看 | 日韩欧国产精品一区综合无码 | 美女福利在线观看 | 亚洲 欧美精品 | 成人福利在线免费观看 | 国产成人综合一区人人 | 国内视频一区二区 | 伊人久久99亚洲精品久久频 | jizz在线观看免费视频 | 日本高清无卡码一区二区久久 | 另类图片 亚洲 校园 小说区 | 久久精品欧美日韩精品 | 牛牛精品国内免费一区 | 免费观看欧美一级毛片 | 激情五月婷婷网 | 亚洲 日本 欧美 日韩精品 | 亚洲精品视频网 | 亚洲精品国产男人的天堂 | 欧美18videosex动漫3d | 欧美一级精品 | 性色aⅴ在线观看swag | 中文字幕免费看 | 日本中文字幕在线播放 | 日美欧韩一区二去三区 | 亚洲线精品一区二区三区 |