cefSharp获取百度搜索结果页面的源码
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获取百度搜索结果页面的源码的更多相关文章
- Powerbuilder编程技巧 如何获取网页的HTML源码
直接使用的三种方式 1. PB内部对象 Inet object 2. API 函数 3. Ole中的Microsfot Web 游览器对象 一.Inet object: 1.Inet objec ...
- jenkins获取git上的源码
jenkins获取git上的源码会遇到三种情况,我们在这里会分别介绍一下: 一.获取git上public(公有)的项目 只需配置仓库的URL即可 jenkins下使用git获取源码的配置方法 二.获取 ...
- 用c#开发微信(2)扫描二维码,用户授权后获取用户基本信息 (源码下载)
本文将介绍基于Senparc.Weixin微信开发框架来实现网页授权来获取用户基本信息.先生成包含授权及回调url信息的二维码:用户用微信扫描之后,被要求授权以获取Ta的用户基本信息:用户授权后,通过 ...
- Android网络:HTTP之利用HttpURLConnection访问网页、获取网络图片实例 (附源码)
http://blog.csdn.net/yanzi1225627/article/details/22222735 如前文所示的TCP局域网传送东西,除了对传输层的TCP/UDP支持良好外,Andr ...
- EntityFrameWork实现部分字段获取和修改(含源码)
EntityFrameWork类库,是微软推出的ORM组件,它是基于Ado.Net的,个人感觉还是非常 好用的.以下介绍的2个功能点分别是部分字段更新和获取 解决部分字段Update.本方案采用仓储模 ...
- 获取linux工具命令源码
总结: 通过先通过which找到命令路径path rpm -qf path 获取源码名称n rpm -qi n 获取源码地址 [root@d mongoexport]# rpm --helpUs ...
- Android Studio使用Mob来获取手机验证码的源码
本文来自:CSDN 感谢作者:qq_35812301(其实就是我的号!) 查看原文:http://blog.csdn.net/qq_35812301/article/details/79150775 ...
- 【最新】破解微信小程序,获取微信小程序源码,破解微信wxapkg,仅需5秒
一个后端第一次接触iview,就简单写了个网站. 之前看到有人发解析wx小程序源码包的软件,但是因为微信的升级,之前的办法已经不行了.现在重新改了js文件,适配了最新的版本. 之前微信wxapkg包获 ...
- 获取微信小程序源码
https://blog.csdn.net/aaron9185/article/details/80576183 http://lrdcq.com/me/read.php/66.htm https:/ ...
随机推荐
- Web项目--------原Oracle数据库的项目同时兼容MySql
原Oracle数据库的项目同时兼容MySql步骤: (一)修改资源配置文件applicationContext-dataSource.xml的数据库连接 Oracle数据库中加上from dual的原 ...
- 各组Beta版本发布点评
1. 新蜂:俄罗斯方块 俄罗斯方块已经基本完成了所有功能,运行流畅,也加入了之前用户期待的即将降落的方块和游戏积分的功能,用户还能随时暂停和继续游戏. 2. 天天向上: 连连看游戏 连连看游戏在核心 ...
- php内置函数分析之str_pad()
PHP_FUNCTION(str_pad) { /* Input arguments */ zend_string *input; /* Input string 输入字符串*/ zend_long ...
- C# Redis 切换数据库
对于Redis来说,它具有库的概念. 但是他只能通过 ChangeDb(long类型) 来操作. 如下代码: //实例化redis public static RedisClie ...
- 【刷题】LOJ 2587 「APIO2018」铁人两项
题目描述 比特镇的路网由 \(m\) 条双向道路连接的 \(n\) 个交叉路口组成. 最近,比特镇获得了一场铁人两项锦标赛的主办权.这场比赛共有两段赛程:选手先完成一段长跑赛程,然后骑自行车完成第二段 ...
- 首先java中集合类主要有两大分支
本文仅分析部分原理和集合类的特点,不分析源码,旨在对java的集合类有一个整体的认识,理解各个不同类的关联和区别,让大家在不同的环境下学会选择不同的类来处理. Java中的集合类包含的内容很多而且很重 ...
- 【AI科技大本营】
从AutoML.机器学习新算法.底层计算.对抗性攻击.模型应用与底层理解,到开源数据集.Tensorflow和TPU,Google Brain 负责人Jeff Dean发长文来总结他们2017年所做的 ...
- luogu1351 [NOIp2014]联合权值 (dfs)
有两种情况:一个点到它的父亲的父亲(要算两次).一个点的子节点之间互相到达 #include<bits/stdc++.h> #define pa pair<int,int> # ...
- C#代码连接Oracle数据库一段时间以后[connection lost contact]的问题
最近在使用C#代码连接Oracle数据库,分为两部分,WCF的客户端与服务端.程序启动与运行都没有问题,部署到服务器上后,运行也没有问题.但是第二天再访问的时候,就会抛出下边所示的异常.这是怎么回事? ...
- WebService注解总结
@WebService 1.serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service.缺省值为 Java 类的简单名称 + Service.(字符 ...