Powerbuilder編程技巧 如何擷取網頁的HTML源碼

來源:互聯網
上載者:User

標籤:bsp   無法   中文   utf8   參數   如何   源碼   sage   result   

直接使用的三種方式 
1、  PB內部對象 Inet object 
2、  API 函數 
3、  Ole中的Microsfot Web 遊覽器對象 

一、Inet object: 
1、Inet object 
       The Inet object provides the ability to display a Web page in the default browser, access the HTML for a specified page, and send data to a CGI, ISAPI, or NSAPI program.。以上是PB helper的闡明,翻譯成中文就是:供給了在Windows預設閱讀器中顯示WEB頁,以及向支撐CGI,ISAPI,NSAPI的利用程式發送資料的才能。似乎還是不好懂得如何擷取html,我也不懂得,假如你不知道她必需和另外一個對象 InternetResult object一起應用的話。 

2、InternetResult object 
    好吧,我們持續看看InternetResult object 是什麼東西,簡略的說我們可以把它看作一個buffer,用於吸收非同步資料轉送的對象,就是說,它是一個buffer,用於接受並寄存html代碼的東西,這回輕易懂得了吧。 
    InternetResult object無法直接使用,比如直接定義 
                InternetResult  lnet_ InternetResult //這是非法的,我們看一下它的help 
       The InternetResult object acts as a buffer,齒輪泵, receiving and caching asynchronous data, as it is returned using the Internet in response to the GetURL and PostURL function calls. The InternetResult object also provides the ability to process this data. 
       To use an InternetResult object, create a standard class user object that defines an InternetData function to process the passed HTML. 
    我們看斜體字部分,helper告知我們必須建立一個standard class來使用它,為什麼要這麼麻煩,我的理解是,實際上這裡是藉助建立一個use object 來實現一個新的“線程”。然後用這個新的對象來接受   GetURL返回的資料??新的線程來完成非同步資料吸收,否則會阻塞現有利用。 

3、又一個必需要解釋的東西Internetdata 
   這個是InternetResult的一個函數,尺度的寫法是:servicereference.InternetData (Blob data )。好吧,很愉快我們有了一個函數了,pb又來了,蒸餾裝置,這個函數是不能直接被使用的,它不會返回任何東西。算了,我們不貼help了,反正這是一個覆蓋函數。假如你使用的是6.5以下的版本,你必須在的internetResult的繼續對象上定義函數InternetData()作為基類中的同名函數的籠罩函數。該籠罩函數必須包括一個類型為blob的參數採取傳值方法傳遞,其傳回值必需是Integer類型.在函數體中處置data參數.。如果應用7.0以上的版本,那體系會主動幫你創立這個籠罩函數,電廠脫硫,你只要在裡面些代碼就可以了。 

4、開端代碼吧 
       1)創立一個InternetResult 的 standard class 並取名為n_internetresult。 
       2)在n_internetresult中創立一個執行個體變數 string is_data 
       3) 在n_internetresult:internetdata()函數寫上如下代碼 
                     is_data = string(data , EncodingUTF8!) 
這裡必須闡明,string指定字元集只有在9.0版本後才有效,假如在這之前的版本上應用,恭喜你,只能直接調用api函數來轉換了 
       4)好了,隨意弄個視窗,再隨意弄個按鈕,在按鈕裡寫一下代碼 
              n_internetresult n_ir 
              inet inet_base 
              string ls_url = ‘http://www.google.com’ 

               inet_base.GetURL(ls_url , n_ir) 
              messagebox(‘www.google.com:html’, n_ir.is_data) 
   5) 你可以運行它了 

5、很主要,必需要闡明的一些規矩 
       1)Inet無法擷取大於65535的源碼,它會直接截斷它,很愁悶吧。 
         2)有些網站會斷定遊覽器,你將無法擷取它的源碼。 相關的主題文章:

    • 兩種愛情
    • 大海風雲
    • 宗教修行者

Powerbuilder編程技巧 如何擷取網頁的HTML源碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.