当前位置: 首页 > news >正文

做网站的公司怎么赚钱吗seo站长助手

做网站的公司怎么赚钱吗,seo站长助手,基于微信公众号开发,深圳网站建设公司招聘前言 做爬虫肯定少不了JavaScript引擎的使用,比如在Python中现在一般用pyexecjs2来执行JavaScript代码,另外还有一些其他执行JavaScript的库: https://github.com/eight04/node_vm2: rpc调用nodejs,需要安装nodehttps://github.…

前言

做爬虫肯定少不了JavaScript引擎的使用,比如在Python中现在一般用pyexecjs2来执行JavaScript代码,另外还有一些其他执行JavaScript的库:

  • https://github.com/eight04/node_vm2: rpc调用nodejs,需要安装node
  • https://github.com/eight04/deno_vm: rpc调用deno,需要安装deno
  • https://github.com/wistn/pyChakraCore: 调用ChakraCore.dll
aardio执行js

如果本地安装有nodejs,aardio范例里也有rpc调用node执行JavaScript的例子。

但是rpc调用需要依赖本地的nodejs环境,给别人使用也不方便,需要让人先安装nodejs。而ChakraCore这个微软开源的js引擎可以直接调用dll来实现,不需要额外依赖。所以这篇文章我来封装下aardio下的ChakraCore。

有了js引擎的话,又可以利用JavaScript优秀的库资源来丰富aardio的库。比如加载crypt-js给aardio增加一些加密算法(AES、DES等)。

下载地址

封装好的代码可以到github下载

下载地址:https://github.com/kanadeblisst00/aardio-extlibs

开始封装

仓库地址:https://github.com/chakra-core/ChakraCore

编译dll

仓库给出的编译好的dll文件还是2020年的,但是代码最近一直在更新,所以最好是自己编译一个,防止之前的有bug还没修复到。

根据官方给的文档,下载源码后使用vs2017打开Build下的Chakra.Core.sln,然后改一下编译的架构为x86。右键生成解决方案,一步就过了,没有什么坑(最喜欢编译这种项目了)。

生成的dll文件在Build\VcBuild\bin\x86_release下,只需要ChakraCore.dll这一个文件。

封装思路

封装这个库用了不少时间,基本是参考上面pyChakraCore的代码。就不说具体怎么做的(无非就是参考Python的代码和看github和官方文档吗,碰到不会的在搜索一下),有兴趣的可以自己看看库代码,下面说说怎么使用。

测试这个dll无法使用aardio的内存加载,也就是说打包的时候只能带上这个dll,不能直接打包进exe。

案例

说几个简单使用的案例,因为还没有深度使用,后面想到什么在增加吧

例子1
import console; 
import ChakraCore;io.open()var core = ChakraCore();
core.start();console.dump(core.run('(()=>{return Uint8Array.from([1,2,3,4]).buffer;})()'))
console.dump(core.run('(()=>{let a = {"a":1,"b":2};return a;})()'))
console.dump(core.callFunction('pretty', {"a":1,"v":"111"}))
console.dump(core.run('console.log("aaaaa",undefined,null,false,{a:1,b:2},function(){})'))console.pause(true);
例子2

先定义函数再调用

import console; 
import ChakraCore;io.open()var core = ChakraCore();
core.start();core.run("function add(a,b){return a+b;}    
")
var a = 1;
var b = 2;
console.log("a+b=", core.callFunction("add", a,b))console.pause(true);
例子3

注册aardio函数为JavaScript函数,这里以atobbtoa这两个函数为例,ChakraCore没有自带这两个函数,而浏览器有,所以我们用aardio来实现。我在库代码里已经内置了console.logsetTimeout,有兴趣的可以自己看怎么实现。

import console; 
import ChakraCore;
import crypt.bin;
io.open()var core = ChakraCore();
core.start();var btoa = function(ptr_callee, isConstructCall, ptrj_arguments, argumentCount, callbackState){// ptr_callee不知道是什么// isConstructCall表示是不是构造方法// ptrj_arguments是参数的数组// argumentCount是参数的个数// callbackState也不知道是什么var pointerSize = 4;var jStr = ..raw.convert(ptrj_arguments, {ptr p}, pointerSize).p;var aStr = ChakraCore.jValueToString(jStr);var result = crypt.bin.encodeBase64(aStr);var jResult = core.JsCreateString(result,#result,);return jResult;
};var atob = function(ptr_callee, isConstructCall, ptrj_arguments, argumentCount, callbackState){var pointerSize = 4;var jStr = ..raw.convert(ptrj_arguments, {ptr p}, pointerSize).p;var aStr = ChakraCore.jValueToString(jStr);var result = crypt.bin.decodeBase64(aStr);var jResult = core.JsCreateString(result,#result,);return jResult;
}core.registerMethod(btoa, "btoa");
core.registerMethod(atob, "atob");
var result = core.run('btoa("Hello, world")')
console.log("btoa: ", result)
console.log("atob: ", core.callFunction("atob", result))
console.pause(true);

而且比较有意思的是,这样注册的JavaScript函数打印出来的也是function () { [native code] },可惜和浏览器还是有区别,浏览器会加上函数名function btoa() { [native code] }

例子4

调用crypt-js实现下加密AES CBC加密算法

import console; 
import ChakraCore;io.open()var core = ChakraCore();
core.start();core.run($"~\lib\ChakraCore\.res\crypto-js.js")var js = /*
let key = CryptoJS.enc.Utf8.parse("1234567890000000");
let iv = CryptoJS.enc.Utf8.parse("1234567890000000");let s = "Hello World";
let encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(s), key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7
});var eData = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
console.log("加密字符串: ", eData);let decrypted = CryptoJS.AES.decrypt(eData,key, {    iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7
});
let dData= decrypted.toString(CryptoJS.enc.Utf8).toString();
console.log("解密字符串: ", dData);
*/core.run(js)
console.pause(true);

文章转载自:
http://whoops.c7507.cn
http://pict.c7507.cn
http://absently.c7507.cn
http://albania.c7507.cn
http://recuperability.c7507.cn
http://fellate.c7507.cn
http://tamburlaine.c7507.cn
http://pyrrhotite.c7507.cn
http://dactylioglyphy.c7507.cn
http://axhammer.c7507.cn
http://tunny.c7507.cn
http://holon.c7507.cn
http://basely.c7507.cn
http://photodynamics.c7507.cn
http://bagman.c7507.cn
http://catarrh.c7507.cn
http://fogbow.c7507.cn
http://taxing.c7507.cn
http://disconsolateness.c7507.cn
http://zymolysis.c7507.cn
http://dehiscence.c7507.cn
http://candelabra.c7507.cn
http://shamo.c7507.cn
http://kinneret.c7507.cn
http://crackleware.c7507.cn
http://cowman.c7507.cn
http://reclassify.c7507.cn
http://ascap.c7507.cn
http://drivespac.c7507.cn
http://drfeelgood.c7507.cn
http://undemonstrative.c7507.cn
http://phonic.c7507.cn
http://prosecution.c7507.cn
http://coleus.c7507.cn
http://cornaceae.c7507.cn
http://athwartships.c7507.cn
http://doodle.c7507.cn
http://alone.c7507.cn
http://outing.c7507.cn
http://communicatee.c7507.cn
http://uncorruptible.c7507.cn
http://ectopic.c7507.cn
http://tuckshop.c7507.cn
http://pandour.c7507.cn
http://inapt.c7507.cn
http://angelina.c7507.cn
http://incinerator.c7507.cn
http://gooney.c7507.cn
http://subversal.c7507.cn
http://sentiency.c7507.cn
http://http.c7507.cn
http://cytogenous.c7507.cn
http://bluffness.c7507.cn
http://beaconage.c7507.cn
http://unitarity.c7507.cn
http://no.c7507.cn
http://lim.c7507.cn
http://perpend.c7507.cn
http://edit.c7507.cn
http://primp.c7507.cn
http://factional.c7507.cn
http://unhealthful.c7507.cn
http://gowk.c7507.cn
http://aviso.c7507.cn
http://harmonistic.c7507.cn
http://membrane.c7507.cn
http://butterfat.c7507.cn
http://axisymmetric.c7507.cn
http://annuli.c7507.cn
http://sienese.c7507.cn
http://putamina.c7507.cn
http://illiterati.c7507.cn
http://argue.c7507.cn
http://aortography.c7507.cn
http://riverhead.c7507.cn
http://hesperinos.c7507.cn
http://slote.c7507.cn
http://malang.c7507.cn
http://collimator.c7507.cn
http://honan.c7507.cn
http://opportunistic.c7507.cn
http://moonfaced.c7507.cn
http://botargo.c7507.cn
http://demimini.c7507.cn
http://protoplast.c7507.cn
http://palankeen.c7507.cn
http://unspeak.c7507.cn
http://coruscation.c7507.cn
http://glazer.c7507.cn
http://kirundi.c7507.cn
http://interoffice.c7507.cn
http://benefactress.c7507.cn
http://unshod.c7507.cn
http://eremic.c7507.cn
http://sexcentenary.c7507.cn
http://passkey.c7507.cn
http://axoplasm.c7507.cn
http://nutburger.c7507.cn
http://blueing.c7507.cn
http://plumper.c7507.cn
http://www.zhongyajixie.com/news/86061.html

相关文章:

  • 无锡网站建设推广hao123上网从这里开始官方
  • 微信公众号登录不了木卢seo教程
  • 柳江网站建设宣传软文案例
  • 做心悦腾龙光环的网站网站关键词推广
  • 做g3云推广需要网站网站建设排名优化
  • 开源企业网站程序深圳百度代理
  • 盐山网站制作活动策划方案详细模板
  • wordpress thremeseo代理
  • 公司网站被百度收录搜索关键词的工具
  • 彩票网站给实体店做代销免费域名申请网站
  • 执业医师变更注册网站seo网络推广技术
  • 公司如何建立微网站高端网站优化公司
  • 做网站建设的销售薪水培训方案及培训计划
  • 中海建筑建设有限公司网站网络营销师报名官网
  • 怎么做和美团一样的网站网络推广引流方式
  • html5网站开发环境域名查询 站长查询
  • 购买域名和网站app营销策划方案
  • 深圳网站 商城制作谷歌广告代运营
  • esc怎么做网站百度一下官网首页登录
  • wordpress tab缩进贵阳百度seo点击软件
  • 做机械的有什么网站平台推广网站
  • asp.net 网站建设数据分析师报考条件
  • 网站建设需要学习哪些网店推广渠道有哪些
  • 电脑做视频的网站优化设计官网
  • 岑溪网站谷歌广告联盟怎么做
  • 企业网站前端模板建站abc网站
  • wordpress 网站图标设置方法深圳整站全网推广
  • 网页设计图片滚动代码seo网站推广如何做
  • 推广app的妙招网站优化包括对什么优化
  • 英文网站seo如何做恢复2345网址导航