最近业余时间都在学习Cefsharp实现本地客户端,发现Cefsharp可以很方便的爬取一些网站的信息,于是就一些爬取过程做一下记录。

拼多多商品搜索请求过程分析

拼多多商品搜索的链接是:拼多多,我们在CefSharp发起请求时加上log打印相关的请求信息,经过分析log,发现这条有关键字的信息是在一次MimeType为json的HTTP资源请求。代码段和日志如下

protected override IResponseFilter GetResourceResponseFilter(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response){logger.Debug(" request_url=" + request.Url + ";request_id=" + request.Identifier + ";response_MimeType=" + response.MimeType + ";response_charset=" + response.Charset + ";response_status=" + response.StatusText);return base.GetResourceResponseFilter(chromiumWebBrowser, browser, frame, request, response);}

2022-07-09 09:46:18.6335 DEBUG 20076-12 Chrome.MyChrome.CefHandlers.MyResourceRequestHandler.GetResourceResponseFilter  request_url=https://mobile.yangkeduo.com/proxy/api/search_hotquery?pdduid=0&plat=h5&source=index;request_id=759816;response_MimeType=application/json;response_charset=utf-8;response_status=

使用我上传的资源下载器也可以加载到对应的json文件.使用CefSharp结合vue3实现简单URL资源下载器-C#文档类资源-CSDN下载

商品关键词解析

获取关键词对应的http请求后,我们就可以在C#里面对本次的资源请求进行截取分析,关键步骤如下。

重写CefSharp.Handler.RequestHandler类的GetResourceRequestHandler方法返回自定义的资源处理类

 protected override IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling){chrome.Logger.Debug("request_url=" + request.Url + ";request_id=" + request.Identifier + ";TransitionType=" + request.TransitionType + ";ReferrerUrl=" + request.ReferrerUrl + ";Method=" + request.Method + ";IsReadOnly=" + request.IsReadOnly + ";isNavigation=" + isNavigation + ";isDownload=" + isDownload + ";requestInitiator=" + requestInitiator);return new MyResourceRequestHandler(webRequest);}

重写CefSharp.Handler.ResourceRequestHandler类的GetResourceResponseFilter方法,将自定义的Stream传入。

        Stream DataStream = new MemoryStream();
protected override IResponseFilter GetResourceResponseFilter(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response){logger.Debug(" request_url=" + request.Url + ";request_id=" + request.Identifier + ";response_MimeType=" + response.MimeType + ";response_charset=" + response.Charset + ";response_status=" + response.StatusText);return new CefSharp.ResponseFilter.StreamResponseFilter(DataStream);}

重写CefSharp.Handler.ResourceRequestHandler类的OnResourceLoadComplete方法对Stream存储的数据进行解析处理

protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength){logger.Debug("request_url=" + request.Url + ";request_id=" + request.Identifier + ";request_status=" + status + ";recv_length=" + receivedContentLength);var ms = DataStream as MemoryStream;string Response2String = "";var bytes = ms.ToArray();if (Charset.IndexOf("utf-8", System.StringComparison.OrdinalIgnoreCase) >= 0){Response2String = System.Text.Encoding.UTF8.GetString(bytes);}else if (Charset.IndexOf("gbk", System.StringComparison.OrdinalIgnoreCase) >= 0){Response2String = System.Text.Encoding.GetEncoding("GB2312").GetString(bytes);}else{Response2String = System.Text.Encoding.UTF8.GetString(bytes);Logger.Error("unknow_charset Charset=" + Charset);}JObject jsonObj = JObject.Parse(Response2String);Logger.Debug("parse_json_success json_str=" + jsonObj["items"].ToString());}

json处理我选用的是Newtonsoft.Json.Linq的JObject进行动态解析。

Cefsharp抓取拼多多每日关键词相关推荐

  1. 拼多多API分享:抓取拼多多商品详情页数据

    利用 API 接口 item_get,传入商品 ID,可抓取到拼多多商品详情页数据,包括商品标题.价格.原价.卖家昵称.库存.销量.宝贝链接.宝贝备注.宝贝图片列表.宝贝图片.商品属性名.商品属性图片 ...

  2. 拼多多关键词搜索接口,item_search - 根据关键词取拼多多商品列表接口解决方案

    一.拼多多关键词搜索接口,item_search - 根据关键词取拼多多商品列表接口解决方案 点击注册获取key和secret测试账号 提取拼多多关键词搜索商品详情页各项数据,包含skuid.价格.收 ...

  3. 小虎电商浏览器:拼多多标题关键词怎么找?有什么工具?

    买卖就是需求的供给,而商品的标题就是搜索的依据,我们在做拼多多店铺运营时,要做好拼多多标题关键词优化,这样才能更好的引流,那么拼多多标题关键词怎么找?有什么工具?一起来看看吧. 拼多多标题关键词怎么找 ...

  4. 多多情报通:拼多多修改关键词会降权吗?有什么影响?

    许多拼多多企业在经营商店时,想要修改商品的标题,但担心它是否会影响权重,所以拼多多修改关键词来减少权重吗?拼多多修改关键词的影响是什么?今天,**多多情报通**小编将告诉你. 1.拼多多修改关键词是否 ...

  5. 拼多多蓝海词数据分析:如何优化拼多多关键词?拼多多标题关键词优化方法。

    如果你在拼多多开店,商品标题优化是必不可少的,那么如何优化拼多多的关键词呢?今天,多多情报通小编将介绍拼多多标题关键词优化方法. qbt4.mobduos.com/register?code=6619 ...

  6. 弘辽科技:拼多多直通车关键词推广问题的细说讲解

    原标题<弘辽科技:拼多多直通车关键词推广问题的细说讲解> 想要开好拼多多直通车,关键词是重点,所以大家一定要时时关注一些关键词的数据变化,及时优化调整,这样才能确保展现的位置不会收到很多的 ...

  7. 拼多多根据关键词获取商品列表接口调用展示

    以下为拼多多某关键词的调用数据作为展示案例 更多API调用示例展示及获取Key和secret请移步文章内容以下查看 [登录 - 跨境电商平台接口提供商 数据采集公司 数据接口定制服务 企业级数据服务商 ...

  8. 多多情报通:拼多多修改关键词的最佳价格是什么时候?如何排名第一?

    近年来,拼多多发展得越来越好,拼多多企业之间的竞争也越来越激烈.如果拼多多企业想让商店发展得更好,他们仍然需要做一些推广.那么,拼多多什么时候会更好地修改竞价呢?下面就由拼多多数据分析软件多多情报通为 ...

  9. 学校铃声Java_java_java多线程抓取铃声多多官网的铃声数据,一直想练习下java多线程抓取数 - phpStudy...

    java多线程抓取铃声多多官网的铃声数据 一直想练习下java多线程抓取数据. 有天被我发现,铃声多多的官网(http://www.shoujiduoduo.com/main/)有大量的数据. 通过观 ...

最新文章

  1. Oracle中主键自增长
  2. 【无码专区11】异或2(结论 / 推式子 + 哈希hash + 大整数高精度 加减乘除重载考察)
  3. 热烈祝贺我刊主编郑纬民教授被提名为中国工程院2017年院士增选候选人!
  4. linux上derby数据库,体验纯Java数据库——Derby
  5. 前端大牛们都学过哪些东西
  6. Mybatis-03-配置文件及Mybatis主要API详解
  7. UVa 483 - Word Scramble
  8. Redis过期策略以及内存淘汰机制
  9. 计算机智能化的例子,工程机械智能化技术案例实例.ppt
  10. phpstudy php56 zend,关于shopex 4.9 php5.6版安装环境问题
  11. 5G NR SSB概述
  12. 网络请求分析实战篇(01)—— 爬取amazon搜索栏的关联关键词
  13. line-height绝对值和相对值的区别
  14. ubuntu ceres-solver 安装
  15. CentOS8 yum/dnf 配置国内源
  16. mybatis 中 if-test 判断详解
  17. 问题:SQL Server数据库不允许更改
  18. exe crashed。
  19. 200套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作
  20. java法师逃离_本性法师:逃离复杂 奔向简单的人生

热门文章

  1. 修改Ubuntu时区
  2. ps切图--图层切图
  3. 字节跳动面试前端岗,刷算法题有救吗?
  4. 【清华大学-郑莉教授】C++语言程序设计 类与对象
  5. 2022大三计算机 | 保研机试 | 学习路线
  6. Java语言的特点有哪些?你对Java认知有多少?
  7. JAVA计算机毕业设计助农脱贫系统Mybatis+源码+数据库+lw文档+系统+调试部署
  8. Visio2013 取消箭头的自动连接
  9. 基于VB的COM编程入门教程
  10. 仓库摆放示意图_仓库摆放原则?