cefsharp修改html,cefsharp修改回应大文件不完整

http://www.itjxue.com  2023-01-20 00:52  来源:未知  点击次数: 

cefsharp设置元素值

可以使用CefSharpAPI提供的ExecuteScriptAsync方法来设置cefsharp元素值。根据查询相关资料信息显示,awaitbrowser.EvaluateScriptAsync("document.getElementById('myElementId').value='MyValue'。")。。

c# cefsharp能不能像webbrowser那样获取到元素,修改这个元素的属性呢

cefsharp新手慎用,用的是js代码,可以获取元素修改元素,但是使用js。

var?frame?=?cb.GetMainFrame();

var?task?=?frame.EvaluateScriptAsync("(function()?{?return?document.getElementsByTagName('input')[0].value;?})();",?null);

这段代码你要充分利用py抓取到可靠信息,知道第一个input是什么,而且有value属性,不然就会报错。

frame.EvaluateScriptAsync()允许你写入js片段。

网页抓捕当中我觉得这个还是靠谱的,现在C#有很多,webbrowser、webkitbrowser、geckofx、webkitsharp......都是些噱头,一般的网页都无法搞定。

py的webdriver和android的webview同出一辙,跟webkit一样。

但是获取信息是不行的,比如我要抓取哪个元素值,你老老实实先把decument对象获取到,再抓。

C#调用chrome获取页面html内容

这个功能用在浏览器中用js就能完成,而且更方便。代码如下:

function?crawl(baseUrl,?pageStart,?pageEnd){??

??for(var?i?=?pageStart;?i?=?pageEnd;?i++){

????var?xhr?=?new?XMLHttpRequest();

????xhr.open("get",?baseUrl?+?i);

????xhr.onload?=?function(page)?{

??????return?function(){

????????console.log("第"?+?page?+?"页内容如下:");

????????console.log(xhr.responseText);

????????//TODO?:?这里你可以发送ajax请求把数据保存到你的服务器端,前提是你服务器端要设置跨域响应头:Access-Control-Allow-Origin?

??????}

????}(i);

????xhr.send();????

??}

}

使用方法,打开你要的网站,在chrome的控制台下执行,crawl("你的页面地址?page参数=", 1, 3)

(责任编辑:IT教学网)

更多