當前位置:首頁 » 編程語言 » 安裝sippython

安裝sippython

發布時間: 2025-09-09 03:07:00

『壹』 如何用python抓取動態頁面信息

很早之前,學習Python web編程的時候,就涉及一個Python的urllib。可以用urllib.urlopen("url").read()可以輕松讀取頁面上面的靜態信息。但是,隨著時代的發展,也來越多的網頁中更多的使用javascript、jQuery、PHP等語言動態生成頁面信息。因此,用urllib再去抓取頁面HTML就不足以達到我們想要的效果。

解決思路:
有一個思路最為簡單的思路可以動態解析頁面信息。urllib不可以解析動態信息,但是瀏覽器可以。在瀏覽器上展現處理的信息其實是處理好的HTML文檔。這為我們抓取動態頁面信息提供了很好的思路。在Python中有一個很有名的圖形庫——PyQt。PyQt雖然是圖形庫,但是他裡面 QtWebkit。這個很實用。谷歌的Chrome和蘋果的Safari都是基於WebKit內核開發的,所以我們可以通過PyQt中得QtWebKit 把頁面中的信息讀取載入到HTML文檔中,再解析HTML文檔,從HTML文檔中提取我們想用得信息。

作者本人實用Mac OS X。應該在Windows和Linux平台也可以採用相同的辦法。

1、Qt4 library
Library,而不是Creator。Library在Mac的默認安裝路徑下,應該是/home/username/Developor/,不要改變Qt4的默認安裝路徑。否則可能安裝失敗。

官方網址:http://qt-project.org/downloads2、SIP、PyQt4
這兩個軟體可以在在PyQt的官網找到。下載的是它的源碼。Mac和Linux需要自己編譯

下載地址是:http://www.riverbankcomputing.co.uk/software/pyqt/download

在終端切換到文件解壓後的目錄中。

在終端中輸入

python configure.py

make

sudo make install

進行安裝編譯。

SIP和PyQt4兩個安裝方法相同。但是PyQt4依賴SIP。所以先安裝SIP再安裝PyQt41、2兩步完成之後,Python的PyQt4的模塊就安裝好了。在Python shell中輸入import PyQt4看看能不能找到PyQt4的模塊。3、Spynner
spynner是一個QtWebKit的客戶端,它可以模擬瀏覽器,完成載入頁面、引發事件、填寫表單等操作。

這個模塊可以在Python的官網找到。

下載地址: https://pypi.python.org/pypi/spynner/2.5

解壓後,cd到安裝目錄,然後輸入sudo python configure.py install安裝該模塊。

這樣Spynner模塊就安裝完成了,在python shell中試試import spynner看看該模塊有沒有安裝完成。回到頂部
Spynner的簡單使用
Spynner的功能十分強大,但是由於本人能力有限,就介紹一下如何顯示網頁的源碼吧。

#! /usr/bin/python
#-*-coding: utf-8 -*-

import spynner

browser = spynner.Browser()
#創建一個瀏覽器對象

browser.hide()
#打開瀏覽器,並隱藏。

browser.load("http://www..com")
#browser 類中有一個類方法load,可以用webkit載入你想載入的頁面信息。
#load(是你想要載入的網址的字元串形式)

print browser.html.encode("utf-8")
#browser 類中有一個成員是html,是頁面進過處理後的源碼的字元串.
#將其轉碼為UTF-8編碼

open("Test.html", 'w+').write(browser.html.encode("utf-8"))
#你也可以將它寫到文件中,用瀏覽器打開。

browser.close()
#關閉該瀏覽器
通過這個程序,就可以比較容易的顯示webkit處理的頁面HTML源碼了。


回到頂部
spynner應用
下面介紹一下spynner的簡單應用,通過簡單的程序,可以獲取你在瀏覽器中看到的頁面的全部圖片。用HTMLParser、BeautifulSoup等都可以完成HTMLParser文檔的解析。而我選擇HTMParser。

#!/usr/bin/python

import spynner
import HTMLParser
import os
import urllib

class MyParser(HTMLParser.HTMLParser):

def handle_starttag(self, tag, attrs):
if tag == 'img':
url = dict(attrs)['src']
name = os.path.basename(dict(attrs)['src'])
if name.endswith('.jpg') or name.endswith('.png') or name.endswith('gif'):
print "Download.....", name
urllib.urlretrieve(url, name)


if __name__ == "__main__":
browser = spynner.Browser()

browser.show()

browser.load("http://www.artist.cn/snakewu1994/StyleBasis_Four/en_album_607236.shtml")

Parser = MyParser()

Parser.feed(browser.html)

print "Done"

browser.close()
通過這個程序,可以下載你在頁面上看到的全部圖片。簡單的幾行程序就完成了這個艱巨的任務。實現了圖片的批量處理。這真是Python語言的優勢,再艱巨的任務交給第三方吧。

『貳』 python可以畫出excel的圖嗎

本文主要闡述如何使用python從excel讀取數據,並用matplotlib繪製成二維圖像。
主要知識點為:

使用xlrd擴展包讀取excel數據
使用matplotlib繪制二維圖像
美化圖像,添加標注,注釋,顯示Latex風格公式,坐標點處透明化處理等技巧
適合人群:適合具有Python基礎的用戶,對於需要書寫實驗報告,學位論文,發表文章,做PPT報告的學員具有較大價值。

開發准備

打開Xfce終端,下載並安裝的相關依賴 。

$ sudo apt-get update
$ sudo apt-get install python-dev
$ sudo pip install numpy
$ sudo apt-get install python-matplotlib
$ sudo pip install xlrd
$ sudo apt-get install python-sip
$ sudo apt-get install libqt4-dev
$ sudo apt-get install python-qt4 python-qt4-dev pyqt4-dev-tools qt4-dev-tools
遇到是否安裝的詢問時,輸入y,按回車鍵繼續安裝。

實驗步驟

1.繪制一個簡單圖像,測試擴展包安裝是否正常。

安裝完成matplotlib後,運行一個小程序測試其是否正常。我們來繪制一個非常簡單的正弦函數。

在學習過程中有什麼不懂得可以加我的
python學習資源qun,855-408-893
群里有不錯的學習視頻教程、開發工具與電子書籍。
與你分享python企業當下人才需求及怎麼從零基礎學習好python,和學習什麼內容
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 500)
dashes = [10, 5, 100, 5] # 10 points on, 5 off, 100 on, 5 off
fig, ax = plt.subplots()
line1, = ax.plot(x, np.sin(x), 『--『, linewidth=2,
label=『Dashes set retroactively『)
line1.set_dashes(dashes)
line2, = ax.plot(x, -1 * np.sin(x), dashes=[30, 5, 10, 5],
label=『Dashes set proactively『)
ax.legend(loc=『lower right『)
plt.show()
如果一切正常,應該得到如下顯示的圖片:

2 測試xlrd擴展包

從excel中讀取數據的過程比較簡單,首先從xlrd包導入open_workbook,然後打開excel文件,把每個sheet里的每一行每一列數據都讀取出來即可。很明顯,這是個循環過程。

from xlrd import open_workbook
x_data1=[]
y_data1=[]
wb = open_workbook(『phase_detector.xlsx『)
for s in wb.sheets():
print 『Sheet:『,s.name
for row in range(s.nrows):
print 『the row is:『,row
values = []
for col in range(s.ncols):
values.append(s.cell(row,col).value)
print values
x_data1.append(values[0])
y_data1.append(values[1])

如果安裝包沒有問題,這段代碼應該能列印出excel表中的數據內容。解釋一下 這段代碼:打開一個excel文件後,首先對文件內的sheet進行循環,這是最外層循環;在每個sheet內,進行第二次循環,行循環;在每行內,進行列循環,這是第三層循環。在最內層列循環內,取出行列值,復制到新建的values列表內,很明顯,源數據有幾列,values列表就有幾個元素。我們例子中的excel文件有兩列,分別對應「角度」和DC值。所以在列循環結束後,我們將取得的數據保存到x_data1和y_data1這兩個列表中。

熱點內容
cmd5加密演算法 發布:2025-09-09 08:22:40 瀏覽:217
windowslua編譯 發布:2025-09-09 08:13:11 瀏覽:945
sas外部密碼是什麼 發布:2025-09-09 08:00:15 瀏覽:150
我的世界伺服器更改上線提示指令 發布:2025-09-09 07:58:34 瀏覽:507
xp如何添加ftp快捷方式 發布:2025-09-09 07:56:06 瀏覽:109
ajaxphp跳轉 發布:2025-09-09 07:49:34 瀏覽:839
雙擊解壓 發布:2025-09-09 07:47:44 瀏覽:437
雲伺服器自建 發布:2025-09-09 07:46:57 瀏覽:944
想換電腦配置怎麼換 發布:2025-09-09 07:46:47 瀏覽:1005
php數組值排序 發布:2025-09-09 07:03:50 瀏覽:634