GVKun编程网logo

用JavaScript或Web表单爬行网站(js爬网页数据)

21

本文将为您提供关于用JavaScript或Web表单爬行网站的详细介绍,我们还将为您解释js爬网页数据的相关知识,同时,我们还将为您提供关于AndroidWebview:从javascript调用ja

本文将为您提供关于用JavaScript或Web表单爬行网站的详细介绍,我们还将为您解释js爬网页数据的相关知识,同时,我们还将为您提供关于Android Webview:从javascript调用java方法执行javascript、Android,使用javascript界面从webview中提取javascript变量、HTML:JavaScript:阻止表单提交并调用Javascript函数、java web中调用JavaScript的几种方式的实用信息。

本文目录一览:

用JavaScript或Web表单爬行网站(js爬网页数据)

用JavaScript或Web表单爬行网站(js爬网页数据)

我有一个webcrawler应用程序。 它成功地爬取了最常见和最简单的网站。 现在我遇到了一些types的网站,其中HTML文件是通过FORMS或JavaScriptsdynamic生成的。 我相信他们可以被抓取,我只是不知道如何。 现在,这些网站不显示实际的HTML页面。 我的意思是,如果我浏览IE或Firefox的页面,HTML代码不匹配IE或Firefox的实际内容。 这些网站包含文本框,checkBox等…所以我相信他们就是他们所说的“Web窗体”。 其实我对Web开发并不熟悉,所以如果我错了,请纠正我。

我的问题是,有没有人和我一样处于类似的状况,并成功地解决了这些“挑战”? 有没有人知道关于networking爬虫的某些书或文章? 那些属于这些高级types的网站?

谢谢。

在Qt4版本中没有显示SVG图标

rubygem家在Windows上

如何在Windows中使用Python检测闪存驱动器插件?

VS 2013 OpenCV错误:无法find或打开PDB文件

停止完成后退出程序

无法生成一个临时类(结果= 1)任何想法?

是否有可能在“RightToLeft”属性设置为“是”的comboBox中有左alignment的文本?

是否有和Windows自带的自动化(OLE2)的HTTP客户端?

使用Java控制Windows应用程序

完全混淆了GTK,GTK +,GTK + 3,PyGobject等

我找到了一个处理深层网络的文章,而且它非常有趣,我认为这回答了我上面的问题。

http://trycatchfail.com/blog/post/2008/11/10/Creating-a-deep-web-crawler-with-NET-Background.aspx

得爱这个

这里有两个单独的问题。

形式

作为一个经验法则,爬虫接触表单。

为特定的网站编写一些东西可能是适当的,这些网站提交预定(或半随机)的数据(特别是在为自己的Web应用程序编写自动化测试时),但是一般的抓取工具应该保持良好的状态。

描述如何提交表单数据的规范可以在http://www.w3.org/TR/html4/interact/forms.html#h-17.13找到 ,可能有一个C#库可以帮助。

JavaScript的

JavaScript是一个相当复杂的野兽。

有三种常见的方法可以处理它:

编写你的履带,使其重复您关心的特定网站的JS功能。

自动化网络浏览器

在env.js中使用类似Rhino的东西

AbotX处理JavaScript的开箱即用。 它不是免费的。

Android Webview:从javascript调用java方法执行javascript

Android Webview:从javascript调用java方法执行javascript

我有以下 javascript代码:

function mine()
    {
        var i = 3;
        Androidobject.call();
    }

其中Androidobject是java的javascript接口.它有方法调用

WebView myWebView;

    public void call()
    {
        runOnUiThread(new Runnable()
        {
            @Override
            public void run()
            {
                myWebView.loadUrl(''javascript:alert(i);'');
            }
        });
    }

在javascript中执行“i is not defined”时,以下代码将产生错误,因为javascript将不会在调用java代码的上下文中执行.

是否可以在相同的上下文中从java方法执行JS,即在上面的情况下使“i”可见?

在这个例子中,“i”是整数,但它可能是任何类型的对象.

谢谢.

解决方法

假设我是一个整数,

function mine()

 {

var i = 3;

Androidobject.call(i);

}

WebView myWebView;

public void call(Integer i)
{
Integer temp = i;
    runOnUiThread(new Runnable()
    {
        @Override
        public void run()
        {
            myWebView.loadUrl(''javascript:alert('' + temp + '');'');
        }
    });
}

Android,使用javascript界面从webview中提取javascript变量

Android,使用javascript界面从webview中提取javascript变量

如何将这个变量从网站提取到我的android代码?
我想它应该可以使用javascript界面​​,但我怎么得到它?

<script type="text/javascript">
    var Ids = "[4161, 104, 121, 202, 1462]";
</script>

我无法将网站上的代码更改为返回值的方法.

有什么建议么?

解决方法:

您可以在webview.loadurl调用中使用javascript:scheme.它将在webview页面中执行javascript.

从那里你可以让它在你的javascript界面​​中调用一个函数.

webview.loadUrl("javascript:Android.getIds(Ids);");

Android是用于声明javascript界面​​的名称空间.

//Add the javascript interface to your web view
this.addJavascriptInterface(new CustomJavaScriptInterface(webViewContext), "Android");

请注意,javascriptinterface仅适用于基本类型.所以你实际上不能直接传递一个数组.只需使用javascript方案循环遍历您的数组.我看到它不是一个真正的数组,所以你应该没关系:

public class CustomJavaScriptInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    CustomJavaScriptInterface(Context c) {
        mContext = c;
    }


    /** retrieve the ids */
    public void getIds(final String myIds) {

        //Do somethings with the Ids

}

HTML:JavaScript:阻止表单提交并调用Javascript函数

HTML:JavaScript:阻止表单提交并调用Javascript函数

当我按一下表单中的提交按钮时,我想让AJAX调用.
InFact我不能删除< form>因为我也想做客户端验证.
我试过这个代码.
<form name="search" >
Name: <input type="text" name="name1"/>
Age: <input type="text" name="age1"/>
<input type="submit" name="Submit" value="Submit" onclick="makeSearch()"/>
</form>

JS

function makeSearch(){
alert("Code to make AJAX Call");
}

使用此代码alert()不显示,但页面被重新加载.
我想阻止页面重新加载并调用JS函数.

谢谢

解决方法

将onsubmit属性添加到表单标签中:
<form name="search" onsubmit="return makeSearch()" >
  Name: <input type="text" name="name1"/>
  Age: <input type="text" name="age1"/>
  <input type="submit" name="Submit" value="Submit"/>
</form>

和javascript添加返回false到最后:

function makeSearch() {
  alert("Code to make AJAX Call");
  return false;
}

java web中调用JavaScript的几种方式

java web中调用JavaScript的几种方式

  1. 在网页加载以及关闭时调用:<body onLoad="hello()"  onUnLoad="byebye()" ></body>

onLoad="hello()表示在网页加载时调用js中的hello()函数;onUnLoad="byebye()"表示在网页关闭时调用js中的byebye()函数。

 

  2.JavaScript中还有一个onClick时间比较常用,此事件主要在单击某个控件是触发:<h1><a href="#" onClike="fun()">按我吧</a></h1>   当点击超链接“#”即可触发JavaScript中的函数fun()。。。这是为控件-超链接添加JavaScript,同理也可以为文本框、表单、复选框等等添加。。。<input type="button" value=""显示" onClike="show()">  为按钮添加JavaScript

 

  3.在表单提交时触发JavaScript用以验证表单填写的相关内容:<form action="" method="get" name="myform" onSubmit="return check(this)">       (也可以不标明this,只要在函数check声明表单即可)

JavaScript中的check函数:

function check(f){
   var value = f.email.value;
   var value01 = f.infocontent.value;
   if(......){
   ......
   }
}

  4.也可以为下拉列表框中添加事件onChange()来调用JavaScript:

<select name="dept" onChange="show()">

          <option value="技术部">技术部</option>

          <option value="财务部">财务部</option>

          <option value="销售部">销售部</option>

</select>

当点击下拉列表框"dept"时就会触发JavaScript中的函数show();

关于用JavaScript或Web表单爬行网站js爬网页数据的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Android Webview:从javascript调用java方法执行javascript、Android,使用javascript界面从webview中提取javascript变量、HTML:JavaScript:阻止表单提交并调用Javascript函数、java web中调用JavaScript的几种方式等相关内容,可以在本站寻找。

本文标签: