天天看點

python語言簡介-Python語言介紹

原标題:Python語言介紹

python語言簡介-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傳回搜狐,檢視更多

責任編輯: