1. 程式人生 > >iOS 中使用JS提取網頁資料,自動提交表單等

iOS 中使用JS提取網頁資料,自動提交表單等

1.首先用一個webview載入網頁

    webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];

    webView.delegate = self;

    [self.view addSubview:webView];

    NSURL *url =[[NSURL alloc] initWithString:@"http://www.reg007.com"];

    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];

    [webView loadRequest:request];


2.自動提交表單

    NSString *ret = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('q')[0].value='18666666666';"];

    NSLog(@"%@", ret);

    ret = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "];

    NSLog(@"%@"

, ret);


3.分析網頁資料

    NSString *count = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('li').length;"];

     NSLog(@"%d  %@", 0, count);

    if (!count) {

        return;

    }

    for (int i=0; i<[count intValue]; i++) {

        NSString *classType = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementsByTagName('li')[%d].getAttribute(\"class\");"

, i]];

        if ([classType isEqualToString:@"media"]) {

             NSLog(@"%d  %@\n", i+1, count);

            NSString *name = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementsByTagName('li')[%d].childNodes[1].childNodes[0].childNodes[0].textContent;", i]];

            NSString *href = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementsByTagName('li')[%d].childNodes[1].childNodes[0].childNodes[0].href;", i]];

            NSString *desc = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementsByTagName('li')[%d].childNodes[1].childNodes[3].textContent;", i]];

            NSLog(@"name: %@, href:%@, desc:%@\n\n", name, href, desc);

        }

    }


相關推薦

iOS 使用JS提取網頁資料自動提交

1.首先用一個webview載入網頁     webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];     webView.delegate

Vue.js實現雙向資料繫結(自動賦值、自動取值)

1、使用Vue.js實現雙向表單資料繫結,例子 <!--html程式碼--> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta

PHPif(isset($_POST['Submit']))是什麼意思php提交時判斷 if($_POST[submit])與 if(isset($_POST[submit])) 的區別

isset -- 檢測變數是否設定 判斷post過來的資料是否被提交過來,if(isset($_POST["submit"]){ echo "提交過來了"; }else { echo "submit is no come~"; }   if(isset($_

js-base64轉換為file物件ajax提交

var img = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE

js-base64轉換為file物件ajax提交FormData

var img = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB

JS自動提交

$("form).submit();可以替代submit按鈕,直接提交表單,但使用時在form中不能新增submit按鈕,否則不能使用該方法提交。但若是使用該方法繫結提交前激發的事件仍有效。如: [javascript] view plain copy $("#ww").submit(f

防止瀏覽器記住密碼後自動填充

       自動填寫表單這個功能在登入的時候能實現就可以了。但是在內容頁面裡面的表單也被瀏覽器預設填充上了記住的資料,這就很噁心了。在網上百度了一下後發現,autocomplete="off" 方法對於搜狗、火狐這些瀏覽器來說並不管用。 再嘗試了一下各種姿勢後,得到解決方

包裹的單個文字框回車鍵自動提交

問題:當一個表單只包含一個文字框的時候,當文字框獲取焦點之後,按回車鍵,表單會被自動提交。 原因:瀏覽器預設事件。瀏覽器預設在這種情況下的回車鍵就是提交操作,會自動觸發submit事件。 解決方法:有3種。    1.去掉form層,手動提交,不依賴於form。    

webBroswer自動提交 webBroser過濾某些標籤元素 webBroswer擷取網頁部分內容 webBroswer 獲取 iframe裡的元素

一、webBroswer自動提交表單(以百度賬號登陸為例) 1、新建一個winform專案 2、在winform拖入一個webBroswer控制元件 3、雙擊webBroswer控制元件,寫入程式碼 namespace AutoSummit {     public par

input ,button, textarea 1)使用disabled , 2) 顯示值, 3) 提交. 4) jquery.form.js ajaxSubmit() 無刷新ajax提交.

成功 isa post key input 技術分享 and () 去除 1.使用disabled input , button textarea 可以 被 禁用, 禁用的效果 : 1) 上面的點擊事件無法使用 --- button : 下面的 oncli

按下enter自動提交

<script language="javascript">       document.onkeydown = function(e) {        &n

python getpost提交

# -*- coding: cp936 -*- import urllib2,urllib,sys """ 使用GET在百度搜索引擎上查詢 在百度的搜尋條中隨便輸入一些內容,會有w和cl兩項構成GET

Jsp自動提交

<%@ page language="java" contentType="text/html; charset=utf-8"%> <?xml:namespace prefix = o

關於使用bootstrapValidator的自動提交問題

當我們在使用bootstrapValidator今天驗證的時候,大多數情況都是直接使用validate這個這個方法,大多數情況是正常的,不會有任何問題,但是當我們在寫程式碼的時候,居然有的時候回碰到自

使用selenium庫製作自動提交的指令碼

selenium用以製作自動化測試工具還是非常不錯的,這裡演示一個開啟谷歌瀏覽器並輸入一個關鍵詞,最後提交搜尋的示例指令碼。 安裝selenium見《Python庫selenium的安裝與使用

js 拼接 當前系統時間 動態提交

<!--這是html內容--> <li class="leftmenuli_2"><a href="#" id="emppro"><s:text name="

jsp頁面 自動提交

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.

關於自動提交BUG的一些心得

 今天又遇到個小問題,單擊<input type='image'>的時候會伴隨著頁面提交。        由於本來就寫有onclick事件,所以在具體是什麼導致頁面提交上糾纏了好半天。最後用排除法,把整個頁面的其他東西一點點刪除來排查。發現在只剩form和<input type='image

HTML頁面禁用Enter鍵自動提交

在HTML頁裡面由於使用了form,常常需要禁用enter提交表單。因為內容頁或者母版頁自身有如果有type="submit"的button,當textbox聚焦時,按下enter都會觸發表單的預設提交(不論是IE還是firefox),於是需要在onkeydown中監聽使

Three.js 從記憶體刪除sceneremove的模型資料釋放記憶體

當需要動態更新顯示不同的模型,從 scene 中 remove 的模型還會在記憶體中,如果多次進行更新操作就會大量佔用記憶體資源,甚至使瀏覽器崩潰,以下程式碼功能為從記憶體中清除模型資料。 程式碼 /** * 清除模型,模型中有 group 和 scene,需要進行判斷 *