本文将为您提供关于用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爬网页数据)
- Android Webview:从javascript调用java方法执行javascript
- Android,使用javascript界面从webview中提取javascript变量
- HTML:JavaScript:阻止表单提交并调用Javascript函数
- java web中调用JavaScript的几种方式
用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
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界面,但我怎么得到它?
<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函数
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函数.
谢谢
解决方法
<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的几种方式
在网页加载以及关闭时调用:<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的几种方式等相关内容,可以在本站寻找。
本文标签: