自动采集器怎么用( 自研、掌握核心科技——2022-01-28279 )
优采云 发布时间: 2022-04-04 00:21自动采集器怎么用(
自研、掌握核心科技——2022-01-28279
)
浏览器(2):自制Chromium内核浏览器,自动统计CSDN社区打卡记录(一)
2022-01-28279
简介:自研并掌握核心技术?我不敢吹嘘这一点,老实说,我使用的是 Chromium 内核组件。为了统计一些数据,一一复制粘贴肯定很累。我们用爬虫吧,我还不是很熟练,现在很多数据需要登录才能请求,或者有些需要滑动滚动条才能显示。比如如何快速统计csdn社区一个月的打卡记录?
+关注继续观看
自研掌握核心技术?我不敢吹嘘这一点,老实说,我使用的是 Chromium 内核组件。
为了统计一些数据,一一复制粘贴肯定很累。我们用爬虫吧,我还不是很熟练,现在很多数据需要登录才能请求,或者有些需要滑动滚动条才能显示。
比如如何快速统计csdn社区一个月的打卡记录?
我要控制网页的请求
我要控制请求结果
我想在网页中放一些JS
我想模拟输入,模拟击键
我要自动翻页,拉滚动条,自动抓取数据
在 Chrome 浏览器中,可以通过安装扩展来执行一些“特殊操作”。比如CSDN的浏览器插件就很强大。可以参考我的另一篇文章文章:什么是油#猴?又一种新的编程语言?不能滚动。
获取您自己的浏览器并完成所有操作。
☆☆☆一定要注意,通过自动请求,一定要控制频率,我一般每次请求之间会停顿5秒以上,文明抓取数据,不要给别人和自己造成麻烦。☆☆☆
曾经号称打破美丽国垄断的风靡一时的“鸿信”浏览器终于被曝出是基于Chromium内核的。事实上,我们也可以得到一个。对于桌面软件来说,微软的Winform和Wpf当然是非常方便的,并且有相应的.Net组件方便Chromium在Winform和Wpf程序中的应用。
CefSharp 允许您将 Chromium 嵌入到 .NET 应用程序中。它是 Marshall A. Greenblatt 围绕 Chromium Embedded Framework (CEF) 的轻量级 .NET 包装器。大约 30% 的绑定是用 C++/CLI 编写的,这里的大部分代码是 C#。它可以在 C# 或 VB 或任何其他 CLR 语言中使用。CefSharp 提供 WPF 和 WinForms Web 浏览器控件实现。
CefSharp 已获得 BSD 许可,因此可用于专有和免费/开源应用程序。
1. 新项目
CefSharp 提供 WPF 和 WinForm 支持,因此您可以创建任何类型的项目。当然,Wpf 可以做得更漂亮。
本例以 WinForm 为例,新建一个 WinForm 项目:
设置项目名称,例如 MyChrome
添加 CefSharp 组件并在 Nuget 中搜索 CefSharp.Winforms。由于此示例是一个 .Net 核心项目,因此选择 CefSharp.Winforms.NETCore 并安装它。
在 Program.cs 中初始化:
public static int Main(string[] args)
{
#if ANYCPU
CefRuntime.SubscribeAnyCpuAssemblyResolver();
#endif
//For Windows 7 and above, best to include relevant app.manifest entries as well
Cef.EnableHighDPISupport();
var settings = new CefSettings()
{
//By default CefSharp will use an in-memory cache, you need to specify a Cache Folder to persist data
CachePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "CefSharp\\Cache")
};
//Perform dependency check to make sure all relevant resources are in our output directory.
Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null);
var browser = new BrowserForm();
Application.Run(browser);
return 0;
}
新建一个Form,比如MainForm,进入设计器:
在工具箱中,可以看到对应的组件已经可用: