原标題:Python語言介紹
Python簡介
Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。
Python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些标點符号,它具有比其他語言更有特色文法結構。
·
Python 是一種解釋型語言: 這意味着開發過程中沒有了編譯這個環節。類似于PHP和Perl語言。
·
·
Python 是互動式語言: 這意味着,您可以在一個Python提示符,直接互動執行寫你的程式。
·
·
Python 是面向對象語言: 這意味着Python支援面向對象的風格或代碼封裝在對象的程式設計技術。
·
·
Python 是初學者的語言:Python 對初級程式員而言,是一種偉大的語言,它支援廣泛的應用程式開發,從簡單的文字處理到 WWW 浏覽器再到遊戲。
·
Python 特點
·
1.易于學習:Python有相對較少的關鍵字,結構簡單,和一個明确定義的文法,學習起來更加簡單。
·
·
2.易于閱讀:Python代碼定義的更清晰。
·
·
3.易于維護:Python的成功在于它的源代碼是相當容易維護的。
·
·
4.一個廣泛的标準庫:Python的最大的優勢之一是豐富的庫,跨平台的,在UNIX,Windows和Macintosh相容很好。
·
·
5.互動模式:互動模式的支援,您可以從終端輸入執行代碼并獲得結果的語言,互動的測試和調試代碼片斷。
·
·
6.可移植:基于其開放源代碼的特性,Python已經被移植(也就是使其工作)到許多平台。
·
·
7.可擴充:如果你需要一段運作很快的關鍵代碼,或者是想要編寫一些不願開放的算法,你可以使用C或C++完成那部分程式,然後從你的Python程式中調用。
·
·
8.資料庫:Python提供所有主要的商業資料庫的接口。
·
·
9.GUI程式設計:Python支援GUI可以建立和移植到許多系統調用。
·
·
10.可嵌入:你可以将Python嵌入到C/C++程式,讓你的程式的使用者獲得"腳本化"的能力。
·
·
Python資料分析過程
一:資料抽取
從外部源資料中擷取數
儲存為各種格式的檔案、資料庫等
使用Scrapy爬蟲等技術
二:資料加載
從資料庫、檔案中提取資料,變成DataFrame對象
pandas庫的檔案讀取方法
三:資料處理
資料準備:
對DataFrame對象(多個)進行組裝、合并等操作
pandas庫的操作
資料轉化:
類型轉化、分類(面元等)、異常值檢測、過濾等
pandas庫的操作
資料聚合:
分組(分類)、函數處理、合并成新的對象
pandas庫的操作
四:資料可視化
将pandas的資料結構轉化為圖表的形式
matplotlib庫
五:預測模型的建立和評估
資料挖掘的各種算法:
關聯規則挖掘、回歸分析、聚類、分類、時序挖掘、序列模式挖掘等
六:部署(得出結果)
從模型和評估中獲得知識
知識的表示形式:規則、決策樹、知識基、網絡權值
本文主要介紹利用Scrapy爬蟲爬取資料的過程
【爬取的是楊子晚報,這裡就以此為例,建立scrapy爬蟲 網址:http://www.yangtse.com/】
第一步:安裝scrapy架構
安裝位址:http://www.cnblogs.com/wj-1314/p/7856695.html)
第二步:建立scrapy爬蟲檔案
格式:scrapy startproject + 項目名稱
1
scrapy startproject yangzi
第三步:進入爬蟲檔案
格式:cd 項目名稱
cd yangzi
第四步:建立爬蟲項目
格式:scrapy genspider -t basic 項目名稱 網址
具體用法如下:
Usage===== scrapy genspider [options]
Generate new spider using pre-defined templates
Options=======--help, -h show this help message and exit--list, -l List available templates--edit, -e Edit spider after creating it--dump=TEMPLATE, -d TEMPLATE Dump template to standard output--template=TEMPLATE, -t TEMPLATE Uses a custom template.--force If the spider already exists, overwrite it with the template
Global Options----------------logfile=FILE log file. if omitted stderr will be used--loglevel=LEVEL, -L LEVEL
log level (default: DEBUG)--nolog disable logging completely--profile=FILE write python cProfile stats to FILE--pidfile=FILE write process ID to FILE--set=NAME=VALUE, -s NAME=VALUE set/override setting (may be repeated)--pdb enable pdb on failure
scrapy genspider -t basic yz http://www.yangtse.com/
建立好了,如下圖:
解釋一下檔案:
·
scrapy.cfg:項目的配置檔案
·
·
yangzi:該項目的python子產品。之後您将在此加入代碼。
·
·
yangzi/items.py:項目中的item檔案。
·
·
yangzi/pipelines.py:項目中的pipelines檔案。
·
·
yangzi/yz/:放置spider代碼的目錄。
·
第五步:進入爬蟲項目中,先寫items
寫這個的目的就是告訴項目,你要爬去什麼東西,比如标題,連結,作者等.
Item是儲存爬取到的資料的容器:其使用方法和python字典類似,并且提供了額外保護機制來避免拼寫錯誤導緻的未定義字段錯誤。 類似在ORM中做的一樣,你可以通過建立一個scrapy.Item類,并且定義類型為scrapy.Field的類屬性來定義一個Item。 首先根據需要從dmoz.org擷取到的資料對item進行模組化。我們需要從dmoz中擷取名字,url,以及網站的描述。對此,在item中定義相應的字段。
以我寫的為例,我想爬取标題,連結,内容,如下:
class YangziItem(scrapy.Item): # define the fields for your item here like: #标題 title = scrapy.Field() #連結 link = scrapy.Field() #内容 text = scrapy.Field()
第六步:進入pipelines,設定相應程式
分析爬去的網站,依次爬取的東西,因為pipelines是進行後續處理的,比如把資料寫入MySQL,或者寫入本地文檔啊等等,就在pipelies裡面寫。這裡直接輸出,不做資料庫的導入處理
class YangziPipeline(object): def process_item(self, item, spider): print(item["title"]) print(item["link"]) return item
第七步:再寫自己建立的爬蟲
(其實,爬蟲和pipelines和settings前後順序可以颠倒,這個不重要,但是一定要先寫items)
Spider是使用者編寫用于從單個網站(或者一些網站)爬取資料的類。 其包含了一個用于下載下傳的初始url,如何跟進網頁中的連結以及如何分析頁面中的内容,提取生成item的方法。 為了建立一個Spider,您必須繼承scrapy.Spider類,且定義以下三個屬性:
§
name:用于差別Spider。改名字必須是唯一的,您不可以為不同的Spider設定相同的名字。
§
§
start_urls:包含了Spider在啟動時進行爬取的url清單。是以,第一個被擷取的頁面給将是其中之一。後續的URL則從初始的URL擷取到的資料中提取。
§
§
parse():是spider的一個方法。被調用時,每個初始url完成下載下傳後生成的Response對象将會作為唯一的參數傳遞給該函數。該方法負責解析傳回的資料(response data),提取資料(生成item)以及生成需要進一步處理的URL的Request對象。
§
進入爬蟲後,先導入items
接下來需要建立一個ITEM容器,
it = YangziItem()
然後寫自己的要爬去的内容,分析網頁後,利用xpath寫
def parse(self, response): it = YangziItem() it["title"] = response.xpath('//div[@class="box-text-title]/text()').extract() it["link"] = response.xpath('//a[@target="_blank"]/@href').extract() #it["text"] = response.xpath().extract() yield it
第八步:設定settings
在settings中配置pipelines(ctrl+f 找到pipelines,然後解除那三行的注釋,大約在64-68行之間),如下圖
第九步:運作爬蟲檔案
scrapy crawl yzscrapy crawl yz --nolog傳回搜狐,檢視更多
責任編輯: