using CefSharp;
using CefSharp.WinForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using HT=HtmlAgilityPack;
namespace CefSharpGetHtml
{ public partial class Form1 : Form
{
public string url { get; private set; }
public string path { get; private set; } ChromiumWebBrowser webBrowser = null;
public Form1(string[] args)
{
InitializeComponent(); url=args[0];
} private async void web_Load(object sender, FrameLoadEndEventArgs e)
{ if (webBrowser != null && webBrowser.IsBrowserInitialized)
{ //调试
// webBrowser.GetBrowser().ShowDevTools();
var task1 = await webBrowser.GetSourceAsync(); // var task = webBrowser.EvaluateScriptAsync(@"
// (function() {
// return document.getElementsByTagName('html')[0].innerHTML;
// })();"); // object result;
// task.ContinueWith(t =>
// {
// if (!t.IsFaulted)
// {
// var response = t.Result;
// result = response.Success ? (response.Result ?? "null") : response.Message;
// MessageBox.Show("得到的结果是: " + result);
// }
// else
// {
// MessageBox.Show("出错了");
// }
// }, TaskContinuationOptions.PreferFairness);
//}
//try
//{
// webBrowser.CloseDevTools();
// webBrowser.GetBrowser().CloseBrowser(true);
//}
//catch { } //try
//{
// if (webBrowser != null)
// {
// webBrowser.Dispose();
// Cef.Shutdown();
// }
//}
//catch { } this.webBrowser.FrameLoadEnd += Last_Load;
}
} private void Form1_Load(object sender, EventArgs e)
{
string path = url;
var setting = new CefSharp.CefSettings();
// setting.UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.0 Mobile/14F89 Safari/602.1";
setting.UserAgent = " Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36";
CefSharp.Cef.Initialize(setting, true, false);
webBrowser = new ChromiumWebBrowser(path);
webBrowser.Dock = DockStyle.Fill;//填充方式
this.Controls.Add(webBrowser);
this.webBrowser.FrameLoadEnd += web_Load;
}
private async void Last_Load(object sender, FrameLoadEndEventArgs e)
{ if (webBrowser != null && webBrowser.IsBrowserInitialized)
{
var task1 = await webBrowser.GetSourceAsync();
webBrowser.RequestHandler = new myrequesthandler();
System.IO.File.WriteAllText(@"d:\\cefSharpWeiBo.html",task1,Encoding.UTF8);
try
{
// webBrowser.CloseDevTools();
webBrowser.GetBrowser().CloseBrowser(true);
}
catch { } try
{
if (webBrowser != null)
{
webBrowser.Dispose();
Cef.Shutdown();
}
}
catch { }
//HT.HtmlDocument doc = new HT.HtmlDocument();
// doc.LoadHtml(task1);
// var node= doc.DocumentNode.SelectSingleNode("//div");
// Console.WriteLine(node.InnerText);
}
} }
}

  

cefSharp获取百度搜索结果页面的源码的更多相关文章

  1. Powerbuilder编程技巧 如何获取网页的HTML源码

    直接使用的三种方式 1.  PB内部对象 Inet object 2.  API 函数 3.  Ole中的Microsfot Web 游览器对象 一.Inet object: 1.Inet objec ...

  2. jenkins获取git上的源码

    jenkins获取git上的源码会遇到三种情况,我们在这里会分别介绍一下: 一.获取git上public(公有)的项目 只需配置仓库的URL即可 jenkins下使用git获取源码的配置方法 二.获取 ...

  3. 用c#开发微信(2)扫描二维码,用户授权后获取用户基本信息 (源码下载)

    本文将介绍基于Senparc.Weixin微信开发框架来实现网页授权来获取用户基本信息.先生成包含授权及回调url信息的二维码:用户用微信扫描之后,被要求授权以获取Ta的用户基本信息:用户授权后,通过 ...

  4. Android网络:HTTP之利用HttpURLConnection访问网页、获取网络图片实例 (附源码)

    http://blog.csdn.net/yanzi1225627/article/details/22222735 如前文所示的TCP局域网传送东西,除了对传输层的TCP/UDP支持良好外,Andr ...

  5. EntityFrameWork实现部分字段获取和修改(含源码)

    EntityFrameWork类库,是微软推出的ORM组件,它是基于Ado.Net的,个人感觉还是非常 好用的.以下介绍的2个功能点分别是部分字段更新和获取 解决部分字段Update.本方案采用仓储模 ...

  6. 获取linux工具命令源码

    总结: 通过先通过which找到命令路径path rpm -qf  path 获取源码名称n rpm -qi n   获取源码地址 [root@d mongoexport]# rpm --helpUs ...

  7. Android Studio使用Mob来获取手机验证码的源码

    本文来自:CSDN 感谢作者:qq_35812301(其实就是我的号!) 查看原文:http://blog.csdn.net/qq_35812301/article/details/79150775 ...

  8. 【最新】破解微信小程序,获取微信小程序源码,破解微信wxapkg,仅需5秒

    一个后端第一次接触iview,就简单写了个网站. 之前看到有人发解析wx小程序源码包的软件,但是因为微信的升级,之前的办法已经不行了.现在重新改了js文件,适配了最新的版本. 之前微信wxapkg包获 ...

  9. 获取微信小程序源码

    https://blog.csdn.net/aaron9185/article/details/80576183 http://lrdcq.com/me/read.php/66.htm https:/ ...

随机推荐

  1. MySQL中EXPLAIN解释命令 查看索引是否生效

    explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: 如: expla ...

  2. 深入 Nginx 之配置篇

     常用配置项 在工作中,我们与 Nginx 打交道更多的是通过其配置文件来进行.那么掌握这些配置项各自的作用就很有必要了. 首先,nginx.conf 的内容通常是这样的: ... ... #核心摸块 ...

  3. orcle 远程连接其他数据库 进行查询数据

    CREATE PUBLIC DATABASE LINK testlinkCONNECT TO hxka IDENTIFIED BY bjdscoalUSING '(DESCRIPTION =(ADDR ...

  4. js & option keycode

    js & option keycode js get option keycode https://keycode.info/ option https://github.com/wesbos ...

  5. 免费SSL证书申请 2018年至简教程

    Let’s Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由Mozilla.思科.Akamai.IdenTrust和EFF等组织发起,目的就是向网站自动签发和 ...

  6. jenkins迁移升级简述

    1.迁移背景 原有jenkins版本为2.32.2,由于需要安装git parameter插件,插件安装失败,依赖暂时无法解决,因此决定升级jenkins版本,升级版本为2.121.2.   2.je ...

  7. Again Prime? No Time. UVA - 10780(质因子分解)

    m^k就是让m的每个质因子个数都增加了k倍 求m的质因子 在n!中增加了多少倍就好了,因为m^k 表示每一个质因子增加相同的倍数k  所以我们需要找到增加倍数最小的那个..短板效应  其它质因子多增加 ...

  8. Xml文档添加节点和属性

    XmlDocument doc = new XmlDocument(); XmlElement xmlElement = doc.CreateElement("节点名称"); xm ...

  9. 【题解】 [ZJOI2008] 泡泡堂(贪心/二分图/动态规划)

    懒得复制,戳我戳我 Solution: 就是有一个贪心策略:(以下假设使\(A\)队分数更高) \(First:\)比较两个分值的最小值,如果\(A\)最小分比\(B\)最小分大就直接比较两个最小的, ...

  10. GO进程调度相关源码学习

    启动流程 procresize流程 malloc.go Memory allocator sizeclass.go span按大小区分的 类型定义 mbitmap.go type and heap b ...