xiaoguyu / wechatdownload Goto Github PK
View Code? Open in Web Editor NEW微信公号文章下载工具
License: GNU General Public License v3.0
微信公号文章下载工具
License: GNU General Public License v3.0
这个是不是被微信的”反爬机制“封了?
昨天还能正常用,今天就不行了。
有解决办法吗?
希望作者可以更新修复一下
最新版 1.4.8 并不会开启代理,是不是内部代码注释了?我看了下行为,本地没有打开任何监听端口
下载单篇文章(PDF、HTML)评论未被下载,有音频的文章,音频也没有被下载。批量下载时评论是有的。
希望增加另存为word功能和内嵌图片到HTML功能。准备下载一些硬货公众号文章,编成电子书,pdf格式,合并后放到手机里,阅读不方便,想用word格式,转成epub,或者HTML直接转成epub。谢谢。
触发公众号的反爬机制,停止采集!
建议设置合理的下载间隔
建议选择合适的下载范围,按区间分批下载
单公众号批量下载出现提示就停止了,如何能根据上一次下载的位置继续下载。
Uncaught Exception:
Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('AxiosError: read ECONNRESET\n' +
' at AxiosError.from (/wechatDownload/dist/mac/wechatDownload.app/Contents/Resources/app.asar/node_modules/axios/dist/node/axios.cjs:789:14)\n' +
' at RedirectableRequest.handleRequestError (/wechatDownload/dist/mac/wechatDownload.app/Contents/Resources/app.asar/node_modules/axios/dist/node/axios.cjs:2744:25)\n' +
' at RedirectableRequest.emit (node:events:527:28)\n' +
' at eventHandlers. (/wechatDownload/dist/mac/wechatDownload.app/Contents/Resources/app.asar/node_modules/follow-redirects/index.js:14:24)\n' +
' at ClientRequest.emit (node:events:527:28)\n' +
' at TLSSocket.socketErrorListener (node:_http_client:454:9)\n' +
' at TLSSocket.emit (node:events:527:28)\n' +
' at emitErrorNT (node:internal/streams/destroy:157:8)\n' +
' at emitErrorCloseNT (node:internal/streams/destroy:122:3)\n' +
' at process.processTicksAndRejections (node:internal/process/task_queues:83:21) {\n' +
" syscall: 'read',\n" +
" code: 'ECONNRESET',\n" +
' errno: -54,\n' +
' config: {\n' +
' transitional: {\n' +
' silentJSONParsing: true,\n' +
' forcedJSONParsing: true,\n' +
' clarifyTimeoutError: false\n' +
' },\n' +
" adapter: [ 'xhr', 'http' ],\n" +
' transformRequest: [ [Function: transformRequest] ],\n' +
' transformResponse: [ [Function: transformResponse] ],\n' +
' timeout: 0,\n' +
" xsrfCookieName: 'XSRF-TOKEN',\n" +
" xsrfHeaderName: 'X-XSRF-TOKEN',\n" +
' maxContentLength: -1,\n' +
' maxBodyLength: -1,\n' +
' env: { FormData: [Function], Blob: null },\n' +
' validateStatus: [Function: validateStatus],\n' +
' headers: AxiosHeaders {\n' +
" Accept: 'application/json, text/plain, /',\n" +
" 'User-Agent': 'axios/1.2.2',\n" +
" 'Accept-Encoding': 'gzip, compress, deflate, br'\n" +
' },\n' +
" method: 'get',\n" +
" url: 'https://mp.weixin.qq.com/s/4NLAPpg17z96SXiI1XYEWg',\n" +
' data: undefined\n' +
' },\n' +
' request: <ref *1> Writable {\n' +
' _writableState: WritableState {\n' +
' objectMode: false,\n' +
' highWaterMark: 16384,\n' +
' finalCalled: false,\n' +
' needDrain: false,\n' +
' ending: false,\n' +
' ended: false,\n' +
' finished: false,\n' +
' destroyed: false,\n' +
' decodeStrings: true,\n' +
" defaultEncoding: 'utf8',\n" +
' length: 0,\n' +
' writing: false,\n' +
' corked: 0,\n' +
' sync: true,\n' +
' bufferProcessing: false,\n' +
' onwrite: [Function: bound onwrite],\n' +
' writecb: null,\n' +
' writelen: 0,\n' +
' afterWriteTickInfo: null,\n' +
' buffered: [],\n' +
' bufferedIndex: 0,\n' +
' allBuffers: true,\n' +
' allNoop: true,\n' +
' pendingcb: 0,\n' +
' constructed: true,\n' +
' prefinished: false,\n' +
' errorEmitted: false,\n' +
' emitClose: true,\n' +
' autoDestroy: true,\n' +
' errored: null,\n' +
' closed: false,\n' +
' closeEmitted: false,\n' +
' [Symbol(kOnFinished)]: []\n' +
' },\n' +
' _events: [Object: null prototype] {\n' +
' response: [Function: handleResponse],\n' +
' error: [Function: handleRequestError],\n' +
' socket: [Function: handleRequestSocket]\n' +
' },\n' +
' _eventsCount: 3,\n' +
' _maxListeners: undefined,\n' +
' _options: {\n' +
' maxRedirects: 21,\n' +
' maxBodyLength: Infinity,\n' +
" protocol: 'https:',\n" +
" path: '/s/4NLAPpg17z96SXiI1XYEWg',\n" +
" method: 'GET',\n" +
' headers: [Object: null prototype],\n' +
' agents: [Object],\n' +
' auth: undefined,\n' +
' beforeRedirect: [Function: dispatchBeforeRedirect],\n' +
' beforeRedirects: [Object],\n' +
" hostname: 'mp.weixin.qq.com',\n" +
" port: '',\n" +
' agent: undefined,\n' +
' nativeProtocols: [Object],\n' +
" pathname: '/s/4NLAPpg17z96SXiI1XYEWg'\n" +
' },\n' +
' _ended: true,\n' +
' _ending: true,\n' +
' _redirectCount: 0,\n' +
' _redirects: [],\n' +
' _requestBodyLength: 0,\n' +
' _requestBodyBuffers: [],\n' +
' _onNativeResponse: [Function (anonymous)],\n' +
' _currentRequest: ClientRequest {\n' +
' _events: [Object: null prototype],\n' +
' _eventsCount: 7,\n' +
' _maxListeners: undefined,\n' +
' outputData: [],\n' +
' outputSize: 0,\n' +
' writable: true,\n' +
' destroyed: false,\n' +
' _last: true,\n' +
' chunkedEncoding: false,\n' +
' shouldKeepAlive: false,\n' +
' maxRequestsOnConnectionReached: false,\n' +
' _defaultKeepAlive: true,\n' +
' useChunkedEncodingByDefault: false,\n' +
' sendDate: false,\n' +
' _removedConnection: false,\n' +
' _removedContLen: false,\n' +
' _removedTE: false,\n' +
' _contentLength: 0,\n' +
' _hasBody: true,\n' +
" _trailer: '',\n" +
' finished: true,\n' +
' _headerSent: true,\n' +
' _closed: false,\n' +
' socket: [TLSSocket],\n' +
" _header: 'GET /s/4NLAPpg17z96SXiI1XYEWg HTTP/1.1\r\n' +\n" +
" 'Accept: application/json, text/plain, /\r\n' +\n" +
" 'User-Agent: axios/1.2.2\r\n' +\n" +
" 'Accept-Encoding: gzip, compress, deflate, br\r\n' +\n" +
" 'Host: mp.weixin.qq.com\r\n' +\n" +
" 'Connection: close\r\n' +\n" +
" '\r\n',\n" +
' _keepAliveTimeout: 0,\n' +
' _onPendingData: [Function: nop],\n' +
' agent: [Agent],\n' +
' socketPath: undefined,\n' +
" method: 'GET',\n" +
' maxHeaderSize: undefined,\n' +
' insecureHTTPParser: undefined,\n' +
" path: '/s/4NLAPpg17z96SXiI1XYEWg',\n" +
' _ended: false,\n' +
' res: [IncomingMessage],\n' +
' aborted: false,\n' +
' timeoutCb: null,\n' +
' upgradeOrConnect: false,\n' +
' parser: null,\n' +
' maxHeadersCount: null,\n' +
' reusedSocket: false,\n' +
" host: 'mp.weixin.qq.com',\n" +
" protocol: 'https:',\n" +
' _redirectable: [Circular *1],\n' +
' [Symbol(kCapture)]: false,\n' +
' [Symbol(kNeedDrain)]: false,\n' +
' [Symbol(corked)]: 0,\n' +
' [Symbol(kOutHeaders)]: [Object: null prototype]\n' +
' },\n' +
" _currentUrl: 'https://mp.weixin.qq.com/s/4NLAPpg17z96SXiI1XYEWg',\n" +
' [Symbol(kCapture)]: false\n' +
' },\n' +
' cause: Error: read ECONNRESET\n' +
' at TLSWrap.onStreamRead (node:internal/stream_base_commons:217:20) {\n' +
' errno: -54,\n' +
" code: 'ECONNRESET',\n" +
" syscall: 'read'\n" +
' }\n' +
'}')
at new NodeError (node:internal/errors:372:5)
at Worker.emit (node:events:516:17)
at [kOnErrorMessage] (node:internal/worker:290:10)
at [kOnMessage] (node:internal/worker:301:37)
at MessagePort. (node:internal/worker:202:57)
at [nodejs.internal.kHybridDispatch] (node:internal/event_target:643:20)
at exports.emitMessage (node:internal/per_context/messageport:23:28)
获取数量不对,少了哦,才11篇,其实有100多篇哦
勾选了下载评论选项,下载后的文档里没有评论
大概是使用了批量下载或评论下载,微信突然提示被封,使用了 第三方工具... 万幸,勾选几个规则后,微信可正常登陆。不敢用工具了。
特此说明 可能存在的风险。
文章 文本下载没问题,文本+音频的文章无法下载
已经新打开公众号文章了,没有效果
文章地址: https://mp.weixin.qq.com/s/fzPkvEyECe-MYE_OTHLS-w
(该文章写于:2021-06-13)
反馈:
2024年的最新的海报格式文章下载没有问题,
但是今天想下载再早年份一点的海报格式文章,发现软件提示提取正文失败
软件版本:1.4.10
系统:win10
重启软件与电脑版微信后依然无效
Win11 64bit
VX版本号:3.9.7.29
日志如下:
2023-11-3.log
mac 的调试模式,点批量下载 - 微信中点开公众号文章 - 回到程序 - 超时没有检测到文章
由于有些公众号文章的评论区有很多比正文还有价值的内容,所以会选择勾选“有评论和回复”,上个月批量下载一两百篇都能正常采集到所有评论,但现在更新到1.5.1版勾选了评论也经常采集不到,一开始以为是限制爬虫所以只几篇几篇的下也不行,然后换了网络环境也不行,以为是微信号被限制了于是换了其他微信号登录微信尝试也无效(还新注册了一个全新的微信,结果新微信号采集时直接显示“获取文章列表失败,错误信息:unknown error”不知道为什么)。
希望大佬可以解决或者解答这个问题,感谢!!
下载的太快,后面全是验证。
下载的东西上千个,大概有900的是空的。
Win10 64
VX:3.9.9.43
版本:1.4.12
2024-3-15.log
windows 微信版本 3.9.7.29 wechatDownload 版本 v.1.4.4
使用批量下载功能,证书也安装了,下载配置中只修改了下载范围,时间选择7日内,其他无任何改动,按照README提示,无法正常工作
提示:
下载来源为网络
代理开启成功,准备批量下载...
请在微信打开任意一篇需要批量下载的公号的文章
别偷懒,已经打开的不算...
批量下载超时,未监测到公号文章!
我想问下:是否和微信版本有关?如果是,你的README中的微信版本是多少,
最新版本,下载文章时候,如果公众号有很多文章,放着自动下载,过一会莫名其妙就会自己关掉
[2024-01-16 16:52:27.841] [info] [ 'setting', 'firstRun', false ] [2024-01-16 16:52:27.843] [info] [ 'setting', 'dlSource', 'web' ] [2024-01-16 16:52:27.844] [info] [ 'setting', 'threadType', 'multi' ] [2024-01-16 16:52:27.845] [info] [ 'setting', 'dlInterval', 500 ] [2024-01-16 16:52:27.845] [info] [ 'setting', 'batchLimit', 10 ] [2024-01-16 16:52:27.846] [info] [ 'setting', 'dlHtml', 0 ] [2024-01-16 16:52:27.846] [info] [ 'setting', 'dlMarkdown', 1 ] [2024-01-16 16:52:27.847] [info] [ 'setting', 'dlPdf', 1 ] [2024-01-16 16:52:27.848] [info] [ 'setting', 'dlMysql', 0 ] [2024-01-16 16:52:27.848] [info] [ 'setting', 'dlAudio', 0 ] [2024-01-16 16:52:27.849] [info] [ 'setting', 'dlImg', 1 ] [2024-01-16 16:52:27.849] [info] [ 'setting', 'skinExist', 1 ] [2024-01-16 16:52:27.850] [info] [ 'setting', 'saveMeta', 1 ] [2024-01-16 16:52:27.851] [info] [ 'setting', 'classifyDir', 1 ] [2024-01-16 16:52:27.851] [info] [ 'setting', 'sourceUrl', 1 ] [2024-01-16 16:52:27.852] [info] [ 'setting', 'dlComment', 0 ] [2024-01-16 16:52:27.852] [info] [ 'setting', 'dlCommentReply', 0 ] [2024-01-16 16:52:27.853] [info] [ 'setting', 'dlScpoe', 'all' ] [2024-01-16 16:52:27.853] [info] [ 'setting', 'tmpPath', 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\wechatDownload' ] [2024-01-16 16:52:27.854] [info] [ 'setting', 'savePath', 'F:\\Program Files (x86)\\公众号文章保存' ] [2024-01-16 16:52:27.854] [info] [ 'setting', 'caPath', 'C:\\Users\\Administrator\\.anyproxy\\certificates' ] [2024-01-16 16:52:27.855] [info] [ 'setting', 'mysqlHost', 'localhost' ] [2024-01-16 16:52:27.855] [info] [ 'setting', 'mysqlPort', 3306 ]
这是软件日志,程序崩了,进程中还有残留:
建议 不用一篇文章一个文件夹, 批量下载情况下,以公众号名字为文件夹,导出的HTML或PDF 一目了然,方便操作。
因为如果批量下载多个公众号,导出HTML或PDF全设置在一个文件夹,不好区分和归类。
公众号有更新,需要重新下载一遍了吧?
线程配置多少合适
微信文章是从新到旧还是从旧到新,从旧到新的话,最旧的文章该如何得知,我用的老版微信没有更新,是更新后微信就有功能了吗
蛋挞怪怪屋的公众号
希望增加检测公众号发布文章数量的功能
wechatDownload版本1.4.8
电脑系统 win11 64bit
微信版本 3.9.8.25(目前最新版)
软件界面上提示的信息为:
下载来源为网络
代理开启成功,准备批量下载...
请在微信打开任意一篇需要批量下载的公号的文章
别偷懒,已经打开的不算...
批量下载超时,未监测到公号文章!
已监测到文章,请确认是否批量下载该文章所属公号
获取文章列表失败,错误信息:no session
批量下载完成,共0篇文章,耗时0.24秒
log文件:
2024-1-16.log
能把视频下载搞定不?😄
比如使用批量下载下载公众号“吾爱破解论坛”的文章,https://mp.weixin.qq.com/s/reoIGA19pVZBGz2ZKEySeA 碰到文字片段直接闪退,类似图片中第一条这样的
,直接使用文章url“下载”能够下载成功,但批量下载就会闪退
Originally posted by @lpker in #20 (comment)
拉代码跑了一下,看到了一个报错的点,不知道是不是它引发的
D:\sc\github\wechatDownload\node_modules\brotli\build\encode.js:3
1<process.argv.length?process.argv[1].replace(/\/g,"/"):"unknown-program");b.arguments=process.argv.slice(2);"undefined"!==typeof module&&(module.exports=b);process.on("uncaughtException",function(a){if(!(a instanceof y))throw a;});b.inspect=function(){return"[Emscripten Module object]"}}else if(x)b.print||(b.print=print),"undefined"!=typeof printErr&&(b.printErr=printErr),b.read="undefined"!=typeof read?read:function(){throw"no read() available (jsc?)";},b.readBinary=function(a){if("function"===
^
TypeError [Error]: Cannot read properties of undefined (reading 'title')
at Service.objToArticle (D:\sc\github\wechatDownload\out\main\service-478a4708.js:887:32)
at downList (D:\sc\github\wechatDownload\out\main\worker-2ab1927a.js:626:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async downList (D:\sc\github\wechatDownload\out\main\worker-2ab1927a.js:657:5)
at async downList (D:\sc\github\wechatDownload\out\main\worker-2ab1927a.js:657:5)
at async downList (D:\sc\github\wechatDownload\out\main\worker-2ab1927a.js:657:5)
at async downList (D:\sc\github\wechatDownload\out\main\worker-2ab1927a.js:657:5)
at async downList (D:\sc\github\wechatDownload\out\main\worker-2ab1927a.js:657:5)
at async batchDownloadFromWeb (D:\sc\github\wechatDownload\out\main\worker-2ab1927a.js:532:3)
at async MessagePort. (D:\sc\github\wechatDownload\out\main\worker-2ab1927a.js:81:7)
Node.js v18.16.1
下载来源为网络
代理开启成功,准备批量下载...
请在微信打开任意一篇需要批量下载的公号的文章
别偷懒,已经打开的不算...
已监测到文章,请确认是否批量下载该文章所属公号
获取文章列表失败,错误信息:unknown error
批量下载完成,共0篇文章,耗时0.23秒
log:
[2023-10-10 23:06:41.477] [error] [
'获取文章列表失败',
'https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&f=json&count=10&is_ok=1&__biz=MzU2NzEwMDc1MA==&key=b8982b21b1d079659f80a14401c1b32b429cf05b13e72337bac3433c27616930ae5e3392a663bb64d47b651c07f7c037e0c5979884e982f77a79c29b249fb2e67062712ccad41d630f372fd166b8a8936fa96b18a9225e7fef6675b473c74ae292c937a5e11a51b58edf28037d4236803b38b75edc0ab0c7dde703d3b63dda0b&uin=MTU3MzY3MjU1&pass_ticket=8sZkL3P6GeLFMmugNRCJkZoEyi9wot%2BZeWxcGeozHWO7uSg%2BIupMFEGr4hwF2Roy&offset=0',
{ ret: -6, errmsg: 'unknown error', home_page_list: [] }
]
[2023-10-10 23:06:41.479] [info] [ 'resp', 2, '获取文章列表失败,错误信息:unknown error', null ]
[2023-10-10 23:06:41.480] [info] [ 'resp', 4, '批量下载完成,共0篇文章,耗时0.23秒', null ]
[2023-10-10 23:06:41.480] [info] [ 'resp', 5, '', null ]
Tag 那边没有提供 macOS 的安装包, 但 Readme 文档里提到了 mac 下的编译指令.
我是否可以理解为 macOS 用户自行编译即可?
我在使用批量下载功能的时候遇到问题。明明已经打开公众号文章了(是在微信中打开的,不是在浏览器中打开的),而且是在点击“批量下载”按钮之后,我才点击打开公众号文章的。
后来发现:
当打开文章是微信浏览器提示页面不安全,然后要点击继续前往,这样的情况下,wechatDownload就能检测到公众号文章了。
但是,这样的情况很少发生,就导致检测不到。怎么办呢?
从1.4开始,那个版本就无法抓全部文件,单线程或者多线程,按日期或者全部都一样,只有20个文章被下载
点击“监控下载”,然后电脑微信打开“微信公众号文章”,出现下面的界面,再次点击“监控下载” 出现获取文章失败
代理开启成功,准备批量下载...
请在微信打开需要下载的文章,可打开多篇文章
获取文章失败
版本: 微信 3.9.6.33, wechatdownload 1.4.4
日志:
[2023-09-26 10:06:07.375] [info] [ 'setting', 'savePath', 'D:\wechatdownload微信公众号文章' ]
[2023-09-26 10:06:07.375] [info] [ 'setting', 'caPath', 'C:\Users\corebug\.anyproxy\certificates' ]
[2023-09-26 10:06:07.376] [info] [ 'setting', 'mysqlHost', 'localhost' ]
[2023-09-26 10:06:07.377] [info] [ 'setting', 'mysqlPort', 3306 ]
[2023-09-26 10:14:28.711] [info] [ 'setting', 'firstRun', false ]
[2023-09-26 10:14:28.714] [info] [ 'setting', 'dlSource', 'web' ]
[2023-09-26 10:14:28.715] [info] [ 'setting', 'threadType', 'multi' ]
[2023-09-26 10:14:28.716] [info] [ 'setting', 'dlInterval', 500 ]
[2023-09-26 10:14:28.717] [info] [ 'setting', 'batchLimit', 10 ]
[2023-09-26 10:14:28.718] [info] [ 'setting', 'dlHtml', 1 ]
[2023-09-26 10:14:28.719] [info] [ 'setting', 'dlMarkdown', 1 ]
[2023-09-26 10:14:28.719] [info] [ 'setting', 'dlPdf', 1 ]
[2023-09-26 10:14:28.720] [info] [ 'setting', 'dlMysql', 0 ]
[2023-09-26 10:14:28.721] [info] [ 'setting', 'dlAudio', 1 ]
[2023-09-26 10:14:28.721] [info] [ 'setting', 'dlImg', 1 ]
[2023-09-26 10:14:28.722] [info] [ 'setting', 'skinExist', 1 ]
[2023-09-26 10:14:28.723] [info] [ 'setting', 'saveMeta', 1 ]
[2023-09-26 10:14:28.723] [info] [ 'setting', 'sourceUrl', 1 ]
[2023-09-26 10:14:28.724] [info] [ 'setting', 'dlComment', 1 ]
[2023-09-26 10:14:28.724] [info] [ 'setting', 'dlCommentReply', 1 ]
[2023-09-26 10:14:28.725] [info] [ 'setting', 'dlScpoe', 'seven' ]
[2023-09-26 10:14:28.725] [info] [
'setting',
'tmpPath',
'C:\Users\corebug\AppData\Local\Temp\wechatDownload'
]
[2023-09-26 10:14:28.726] [info] [ 'setting', 'savePath', 'D:\wechatdownload微信公众号文章' ]
[2023-09-26 10:14:28.726] [info] [ 'setting', 'caPath', 'C:\Users\corebug\.anyproxy\certificates' ]
[2023-09-26 10:14:28.727] [info] [ 'setting', 'mysqlHost', 'localhost' ]
[2023-09-26 10:14:28.728] [info] [ 'setting', 'mysqlPort', 3306 ]
[2023-09-26 10:18:21.249] [info] [ '触发检查更新' ]
[2023-09-26 10:18:21.250] [info] [ { code: 2, msg: '正在检查更新……' } ]
[2023-09-26 10:18:32.643] [info] [ { code: 4, msg: '现在使用的就是最新版本,不用更新' } ]
wechatDownload版本1.4.8
电脑系统 win10 64bit
微信版本 3.9.9.35
海报格式页面的微信文章,最近下载已经不行。
具体问题:
文章有图片软件获取为0/文字也不会获取,导出后的HTML文字/图片为空白。
示范文章链接: https://mp.weixin.qq.com/s/FKkNEbhu35ojI7pn97SYzw
囧rz
下载了几百票文章后,点批量下载,会开始读取文章列表,到开始下载的地方应用黑屏,自动退出。
单线程和多线程都试过,都会自动退出。
使用单篇下载是没问题的,可以下载。
日志:
2023-12-4.log
下载的公众号文章链接
https://mp.weixin.qq.com/s/66dkVia2SM59HEiFKi5NWg
请问有计划开放api接口吗?通过http get方法传入一个公众号的链接,可以返回包含markdown文本的json响应数据,或者下载到本地目录。
感谢您的开发!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.