【三】C〓〓はWPFに基づいてCef Sharpを使用して万能爬虫をする
目次
【一】C〓〓はWPFに基づいてCef Sharpを使用して万能爬虫をする
【二】C〓〓はWPFに基づいてCef Sharpを使用して万能爬虫をする
【三】C〓〓はWPFに基づいてCef Sharpを使用して万能爬虫をする
【四】C菙はWPFに基づいてCef Sharpを使用して万能爬虫類を作る---http Cliient訪問補助類を拡張して代理を設定することができます.
CefSharpWebrowserの操作の種類を共有します.
CefWebBrowser Control.SetValueById(chromium WebBrowser,「kw」,「万能爬虫」) CefWebBrowser Control.C.lickButtonById(chromium WebBrowser,「ス」) CefWebBrowser Control.C.lickButton ByName(chromium WebBrowser,「n」,Search Type.rassName,「次のページ」);
【一】C〓〓はWPFに基づいてCef Sharpを使用して万能爬虫をする
【二】C〓〓はWPFに基づいてCef Sharpを使用して万能爬虫をする
【三】C〓〓はWPFに基づいてCef Sharpを使用して万能爬虫をする
【四】C菙はWPFに基づいてCef Sharpを使用して万能爬虫類を作る---http Cliient訪問補助類を拡張して代理を設定することができます.
CefSharpWebrowserの操作の種類を共有します.
using CefSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ChromeControler
{
///
/// CefSharpWebBrowser
///
public static class CefWebBrowserControl
{
///
/// html
///
/// CefSharp webbrowser
///
public static async Task GetHtmlSource(CefSharp.Wpf.ChromiumWebBrowser chromiumWebBrowser)
{
string htmlStr = string.Empty;
await chromiumWebBrowser.GetSourceAsync().ContinueWith(taskHtml =>
{
htmlStr = taskHtml.Result;
});
return htmlStr;
}
///
/// input
///
/// CefSharp webbrowser
/// id
public static string SetValueById(CefSharp.Wpf.ChromiumWebBrowser chromiumWebBrowser, string id,string value)
{
if (id.Length > 0)
{
string js = @"(
function()
{
var ele= document.getElementById('" + id + @"');
if(ele!=null)
{
ele.value='"+value+@"';
}
}
)()";
ExecuteJs(chromiumWebBrowser, js);
return " ";
}
else
return "id ";
}
///
/// Input
///
/// CefSharp webbrowser
///
/// html ***
/// html ***
public static string SetValueByName(CefSharp.Wpf.ChromiumWebBrowser chromiumWebBrowser, string name,string value, SearchType searchType = SearchType.ControlName, string innerHtml = "", string outHtml = "")
{
string js = string.Empty;
string forStr = string.Empty;
if (name.Length > 0)
{
if (innerHtml.Length > 0)
{
forStr = "if(eleAug[i].innerText.indexOf('" + innerHtml + "') != -1) ";
}
if (outHtml.Length > 0)
{
forStr = "if(eleAug[i].outerText.indexOf('" + outHtml + "') != -1) ";
}
string searchjs = string.Empty;
switch (searchType)
{
case SearchType.ControlName: { searchjs = " var eleAug= document.getElementsByName('" + name + @"');"; } break;
case SearchType.ClassName: { searchjs = " var eleAug= document.getElementsByClassName('" + name + @"');"; } break;
case SearchType.TagName: { searchjs = " var eleAug= document.getElementsByTagName('" + name + @"');"; } break;
}
js = @"(
function()
{
" + searchjs + @"
if(eleAug!=null)
{
for(var i=0;i< eleAug.length;i++)
{
" + forStr + @"
{ ele.value='" + value + @"';}
}
}
}
)()";
}
else
{
return " ";
}
ExecuteJs(chromiumWebBrowser, js);
return " ";
}
///
///
///
/// CefSharp webbrowser
/// id
public static string ClickButtonById(CefSharp.Wpf.ChromiumWebBrowser chromiumWebBrowser, string id)
{
if (id.Length > 0)
{
string js = @"(
function()
{
var ele= document.getElementById('" + id + @"');
if(ele!=null)
{
ele.click();
}
}
)()";
ExecuteJs(chromiumWebBrowser, js);
return " ";
}
else
return "id ";
}
///
///
///
/// CefSharp webbrowser
///
/// html ***
/// html ***
public static string ClickButtonByName(CefSharp.Wpf.ChromiumWebBrowser chromiumWebBrowser, string name, SearchType searchType = SearchType.ControlName, string innerHtml = "", string outHtml = "")
{
string js = string.Empty;
string forStr = string.Empty;
if (name.Length > 0)
{
if (innerHtml.Length > 0)
{
forStr = "if(eleAug[i].innerText.indexOf('" + innerHtml + "') != -1) ";
}
if (outHtml.Length > 0)
{
forStr = "if(eleAug[i].outerText.indexOf('" + outHtml + "') != -1) ";
}
string searchjs = string.Empty;
switch (searchType)
{
case SearchType.ControlName: { searchjs = " var eleAug= document.getElementsByName('" + name + @"');"; } break;
case SearchType.ClassName: { searchjs = " var eleAug= document.getElementsByClassName('" + name + @"');"; } break;
case SearchType.TagName: { searchjs = " var eleAug= document.getElementsByTagName('" + name + @"');"; } break;
}
js = @"(
function()
{
" + searchjs + @"
if(eleAug!=null)
{
for(var i=0;i< eleAug.length;i++)
{
" + forStr + @"
{ eleAug[i].click();}
}
}
}
)()";
}
else
{
return " ";
}
ExecuteJs(chromiumWebBrowser, js);
return " ";
}
///
/// JS
///
/// wpf ChromiumWebBrowser
///
public static void ExecuteJs(CefSharp.Wpf.ChromiumWebBrowser chromiumWebBrowser, string js)
{
var frame = chromiumWebBrowser.WebBrowser.GetMainFrame();
frame.EvaluateScriptAsync(js);
}
}
public enum SearchType
{
ControlName,
ClassName,
TagName
}
}
使用例:CefWebBrowser Control.SetValueById(chromium WebBrowser,「kw」,「万能爬虫」) CefWebBrowser Control.C.lickButtonById(chromium WebBrowser,「ス」) CefWebBrowser Control.C.lickButton ByName(chromium WebBrowser,「n」,Search Type.rassName,「次のページ」);