① python webkit怎麼安裝啊
下載源碼
安裝
mkdir build
cd build
../autogen.sh
出現錯誤提示:
automake: cannot open < gtk-doc.make: No such file or directory
sudo apt-get install gtk-doc-tools
繼續第二步
../autogen.sh
出現錯誤:
configure: error: You need the 'flex' lexer generator to compile WebKit
google 一下關於 flex的資料
Flex 是一個高效、免費的開源框架,可用於構建具有表現力的 Web 應用程序,這些應用程序利用 Adobe Flash Player和 Adobe AIR, 運行時跨瀏覽器、桌面和操作系統實現一致的部署。雖然只能使用 Flex 框架構建 Flex 應用程序,但Adobe Flash Builder™(之前稱為 Adobe Flex Builder™)軟體可以通過智能編碼、互動式遍歷調試以及可視設計用戶界面布局等功能加快開發。
網址: http://www.adobe.com/devnet/flex/flex-sdk-download-all.html
下載之後解壓縮,發現不是我這里想要的source
網路了一下 flex ,在第一頁的最下面一個網頁,標題: flex: The Fast Lexical Analyzer
打開 http://flex.sourceforge.net/ 之後,看了一下介紹:
Flex is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns in text. The flex program reads user-specified input files, or its standard input if no file names are given, for a description of a scanner to generate. The description is in the form of pairs of regular expressions and C code, called rules. Flex generates a C source file named, "lex.yy.c", which defines the function yylex(). The file "lex.yy.c" can be compiled and linked to proce an executable. When the executable is run, it analyzes its input for occurrences of text matching the regular expressions for each rule. Whenever it finds a match, it executes the corresponding C code.
下載之後,安裝成功,執行 flex --version ,顯示:flex 2.5.37,安裝成功.
繼續第二步
../autogen.sh
出現錯誤:configure: error: You need the 'gperf' hash function generator to compile WebKit
gperf網址:http://www.gnu.org/software/gperf/
安裝 gperf:
wget http://ftp.gnu.org/pub/gnu/gperf/gperf-3.0.4.tar.gz
tar zxvf gperf-3.0.4.tar.gz
cd gperf-3.0.4/
./configure
make
make install
繼續第二步
../autogen.sh
出現錯誤:configure: error: JPEG library (libjpeg) not found
IJG is an informal group that writes and distributes a widely used free library for JPEG image compression. The first version was released on 7-Oct-1991.
安裝 jpeg library:
到http://www.ijg.org/找到下載源碼的鏈接
wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz
cd jpeg-8d/
./configure
make
sudo make install
安裝成功
繼續第二步
../autogen.sh
出現錯誤:configure: error: PNG library (libpng) not found
libpng: http://www.libpng.org/pub/png/libpng.html
安裝:
wget http://downloads.sourceforge.net/project/libpng/libpng15/1.5.13/libpng-1.5.13.tar.xz
tar xvf libpng-1.5.13.tar.xz
cd libpng-1.5.13
./configure
make
sudo make install
安裝成功
繼續第二步
../autogen.sh
libpng的錯誤仍然出現: configure: error: PNG library (libpng) not found
觀察了一下編繹的配製過程:
checking for libpng... no
checking for libpng14... no
checking for libpng12... no
checking for png_read_info in -lpng... no
configure: error: PNG library (libpng) not found
checking的是libpng1.4版本,而剛才安裝的是libpng1.5版本
② 如何用Python抓取動態頁面信息
解決思路:
有一個思路最為簡單的思路可以動態解析頁面信息。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/downloads
2、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再安裝PyQt4
1、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語言的優勢,再艱巨的任務交給第三方吧。
③ webkit內核源碼是什麼寫的
瀏覽器最核心的部分是渲染引擎(Rendering Engine),我們一般習慣稱之為「瀏覽器內核」,其負責解析網頁語法(如HTML、JavaScript)並渲染、展示網頁。因此,所謂的瀏覽器內核通常也就是指瀏覽器所採用的渲染引擎,渲染引擎決定了瀏覽器如何顯示網頁的內容以及頁面的格式信息。不同的瀏覽器內核對網頁編寫語法的解析也有所不同,因此同一網頁在不同的內核瀏覽器里的渲染、展示效果也可能不同。
主流瀏覽器內核分類:瀏覽器內核種類繁多,商用的加上非商業的免費內核,大約有10款以上甚至更多,不過通常比較常見的大約只有以下4種,下面就簡單介紹一下。
Trident
Trident(又稱為MSHTML),是微軟的Windows搭載的網頁瀏覽器——Internet Explorer瀏覽器使用的內核(俗稱IE內核),該內核程序在1997年的IE 4中首次被採用,之後不斷地加入新的技術並隨著新版本的IE發布。Trident實際上是一款開放的內核,Trident引擎被設計成一個軟體組件(模塊),使得其他軟體開發人員很容易將網頁瀏覽功能加到他們自行開發的應用程序里,其介面內核設計相當成熟,因此才涌現出許多採用IE內核而非IE的瀏覽器(如Maxthon、軟媒的閃游瀏覽器、騰訊的TT、GreenBrowser等),但是Trident只能用於Windows平台。
由於IE本身的「壟斷性」而使得Trident內核在很長時間內都是一家獨大,微軟也在相當長一段時間內都沒有更新Trident內核,這就導致了兩個後果——一是Trident內核曾經幾乎與W3C標准脫節;二是Trident內核的大量Bug等安全性問題沒有得到及時解決。目前,微軟對Trident 排版引擎做了重大變動,除了加入新的技術之外,還增加了對網頁標準的支持。盡管這些變動已經在相當大的程度上落後了其他的排版引擎,如Gecko、 WebCore、KHTML及Presto。
Gecko
Gecko是開放源代碼、以C++編寫的網頁排版引擎,目前被Mozilla家族網頁瀏覽器以及Netscape 6以後版本瀏覽器所使用。這款軟體原本是由網景通訊公司開發的,現在則由Mozilla基金會維護。由於Gecko的特點是代碼完全公開,因此,其可開發程度很高,全世界的程序員都可以為其編寫代碼,增加功能。因為這是個開源內核,因此受到許多人的青睞,採用Gecko內核的瀏覽器也很多,這也是 Gecko內核雖然年輕但市場佔有率能夠迅速提高的重要原因。
Gecko排版引擎提供了一個豐富的程序界面以供與互聯網相關的應用程序使用,例如網頁瀏覽器、HTML編輯器、客戶端/伺服器等。雖然最初的主要對象是Mozilla的衍生產品,如 Netscape和Mozilla Firefox,但是現在已有很多其他軟體利用這個排版引擎。此外Gecko也是一個跨平台內核,可以在Windows、BSD、Linux和Mac OS X中使用。
Gecko是最流行的排版引擎之一,其流行程度僅次於Trident。使用Gecko引擎的瀏覽器有Firefox、網景6~9、SeaMonkey、Camino、Mozilla、Flock、Galeon、K-Meleon、Minimo、Sleipni、 Songbird、XeroBank。Google Gadget引擎採用的就是Gecko瀏覽器引擎。
Presto
Presto是一個由Opera Software開發的瀏覽器排版引擎,目前Opera 7.0~10.00版本使用該款引擎。Presto的特點就是渲染速度的優化達到了極致,它是目前公認的網頁瀏覽速度最快的瀏覽器內核,然而代價是犧牲了網頁的兼容性。
Presto實際上是一個動態內核,與Trident、Gecko等內核的最大區別就在於腳本處理上,Presto有著天生的優勢,頁面的全部或者部分都能夠在回應腳本事件時等情況下被重新解析。此外該內核在執行JavaScript時有著最快的速度,根據同等條件下的測試,Presto內核執行同等JavaScript所需的時間僅有Trident和Gecko內核的約1/3。不過,不足之處在於Presto是商業引擎,使用Presto的除了Opera以外,只剩下NDS Browser、Nokia 770網路瀏覽器等,這在很大程度上限制了Presto的發展。 Opera Widget引擎採用的就是Presto引擎。
WebKit
WebKit 是一個開放源代碼的瀏覽器引擎(Web Browser Engine),WebKit最初的代碼來自KDE的KHTML和KJS(它們均為開放源代碼,都是自由軟體,在GPL協議下授權)。所以WebKit也是自由軟體,同時開放源代碼。
除了Safari瀏覽器,Mac下還有OmniWeb、Shiira等人氣很高的瀏覽器。Google的 chrome也使用WebKit作為內核。 WebKit內核在手機上的應用也十分廣泛,例如Google的Android平台瀏覽器、 Apple的iPhone瀏覽器、Nokia S60瀏覽器等所使用的瀏覽器內核引擎,都是基於WebKit引擎的。 WebKit內核也廣泛應用於Widget引擎產品,包括中國移動的BAE、Apple的Dashboard以及Nokia WRT在內採用的均為WebKit引擎。
④ 易語言怎麼嵌入webkit還有哪裡有webkit源碼在www.webkit.org找了好久,那位大俠幫幫我
WebKit 目前只有 C/C++ 版本。
要不你可以使用 C 封裝一個易語言控制項,就可以使用易語言編 WebKit App 了!