如何用python获取onClick弹窗的文件

pa1318 2020-10-17 04:15:37
在用python爬取网站文档的过程中遇到了问题,目标文件没有链接,而是一个onclick弹窗,点击后出来一个另存对话框,需要输入文件名,然后点击保存完成下载。这个onclick调用的一个js函数,我贴在下面,请大神帮我看一下,如何用python批量获取这种文件。
function SaveDoc()
{
var suffix = g_isUserView ? "pdf" : "doc";
var fn = IEHelper.IEH_GetNewFileName("请指定新文件名:", suffix);
if (fn != null && fn != "")
{
var l = IEHelper.IEH_CopyFile(g_fileName, fn);
if (l == 1) {
HJAlert("另存文件完成!");
if (g_isUserView) { // 用户查看时记录文件下载情况
var operDesc = "下载文件序号为【" + form1.hdnSeqnum.value + "】的文件";
hjoa.HJOAHelper.AjaxReportUserOperEvent(2, g_userId, operDesc, form1.hdnSeqnum.value, "", "", "");
}
}
else {
HJAlert("另存文件出错!");
}
}
}
...全文
982 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋千Swing0_0 2020-10-24
  • 打赏
  • 举报
回复
你干脆把整个网页 + js全部发我邮箱吧 yiyue1047831462@foxmail.com
pa1318 2020-10-24
  • 打赏
  • 举报
回复
麻烦你了
pa1318 2020-10-24
  • 打赏
  • 举报
回复
把页面元素贴上来,麻烦再看看。是不是 value的值就是文档内容,怎么转换成文字? <html><head> <link href="/inc/usrdef.css" rel="stylesheet" type="text/css"> <link href="/inc/stdtag.css" rel="stylesheet" type="text/css"> <link href="/e-work/inc/special.css" rel="stylesheet" type="text/css"> <script language="jscript" src="/inc/commonfunc.js"></script> <script language="jscript" src="/inc/menu.js"></script> <script language="jscript" src="/e-work/inc/oa.js"></script><title>e-Series abc</title> <script language="jscript" src="/e-work/inc/commonfunc.js"></script> <script language="javascript" src="js/snddoc_view.js"></script> <script language="javascript" src="js/userdoc_reply.js"></script> <script language="javascript"> var g_isUserView = false; var g_seqnum = 4172; var g_sealInfo = "4172,9676516,2020-01-07 13:30:35,1"; var g_rcvNum = ""; var g_otype = "S"; var g_showProcInfo = false; var g_userId = "9999"; var g_deltaHeight = 300; </script> </head> <body> <form id="form1" action="/e-work/docmgr/snddoc_view.aspx?idx=4172&arch=1" method="post"> <input name="__VIEWSTATE" id="__VIEWSTATE" type="hidden" value="/wEPDwUKLTcyNjk4ODc5OQ9kFgRmD2QWAgIBD2QWBgIBD2QWBgIBDxYCHgdWaXNpYmxlaGQCBQ8WAh8AaGQCCw8WAh8AZ2QCAw9kFi4CAQ8PFgIeBFRleHQFBuWPkeaWh2RkAgMPDxYCHwEFBuaZrumAmmRkAgUPDxYCHwEFBuaZrumAmmRkAgcPDxYCHwEFFueOieWGnOWVhumTtlsyMDIwXTHlj7dkZAIJDw8WAh8BBQgyMDIwLTEtNmRkAgsPDxYCHwEFVOeOieeOr+WGnOWVhumTtuihjOWFs+S6juaSpOWbnuaKpeivt+aguOWHhuS7u+i/quaVj+iRo+S6i+S7u+iBjOi1hOagvOeahOeUs+ivt+aKpeWRimRkAg0PDxYCHwEFBuW+heWummRkAg8PDxYCHwEFEueOieeOr+WGnOWVhumTtuihjGRkAhEPDxYCHwEFFeWPsOW3numTtuS/neebkeWIhuWxgGRkAhMPDxYCHwFlZGQCFQ8WAh8BBScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDvlj5FkAhcPDxYCHwEFKuiRo+S6i+mVv+WupOOAgeihjOmVv+WupOOAgeebkeS6i+mVv+WupOOAgmRkAhkPDxYCHwFlZGQCGw8PFgIfAQUBNWRkAh0PDxYCHwEFD+S6uuWKm+i1hOa6kOmDqGRkAh8PDxYCHwEFBuaigemilmRkAiMPFgIfAQUP5YWs5paH5q2j5paH77yaZAInDxYCHwEF3wE8aW5wdXQgdHlwZT0iYnV0dG9uIiBjbGFzcz0iY29tbW9uYnRuIiAgICAgICAgb25jbGljaz0iU2hvd0hpc3RvcnlEb2NzKCc0MTcyJykiIHZhbHVlPSLmraPmlofkv67mlLnljoblj7IiPiZuYnNwOzxpbnB1dCB0eXBlPSJidXR0b24iIGNsYXNzPSJjb21tb25idG4iICAgICAgICBvbmNsaWNrPSJTaG93SGlzdG9yeUF0dGFjaHMoJzQxNzInKSIgdmFsdWU9IumZhOS7tuS/ruaUueWOhuWPsiI+ZAIrDxYCHwEFhxI8dGFibGUgaWQ9J3RibFBkZlZpZXcnIGJvcmRlcj0nMCcgY2VsbHNwYWNpbmc9JzAnIGNlbGxwYWRkaW5nPScwJz4NCgkJICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249J3RvcCc+CTxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iL2Utd29yay9pbmMvd29yZGN0cmwuanMiPjwvc2NyaXB0Pg0KCTx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+DQoJCTx0cj4NCiAgICAJPHRkIHZhbGlnbj0idG9wIj4NCiAgICAJCTxvYmplY3QgaWQ9Ik9TdGFyIiBjbGFzc2lkPSJjbHNpZDowRTA1RDMxMS01MEQ1LTQwMzgtOUZBMy0yNDM2MkYzNjQyNDIiDQoJCQkJCXdpZHRoPSIwIiBoZWlnaHQ9IjAiIGNvZGViYXNlPSIvY2Ficy9FbWJlZFdvcmREb2NWaWV3Lm9jeCNWZXJzaW9uPTEsOCwwLDAiPg0KCQkJICAgIDxwYXJhbSBuYW1lPSJTZWFsTW9ub05vTG9jayIgdmFsdWU9IjAiPg0KCQkJICAgIDxwYXJhbSBuYW1lPSJTZWFsQWN0dWFsU2l6ZSIgdmFsdWU9Ii0xIj4NCiAgICAgICAgICAgIDwvb2JqZWN0Pg0KCQkJPG9iamVjdCBpZD0iU2VhbE1nciIgY2xhc3NpZD0iY2xzaWQ6NjRBRkNFRTUtN0JCMS00MTM4LTk1NTAtMDA1MUNGMEY5RENFIg0KCQkJCQl3aWR0aD0iMCIgaGVpZ2h0PSIwIiBjb2RlYmFzZT0iL2NhYnMvSEpPQUhlbHBlci5ETEwjVmVyc2lvbj0xLDIsMCwwIj4NCgkJCTwvb2JqZWN0Pg0KCQk8L3RkPg0KICAJPC90cj4NCgk8L3RhYmxlPg0KPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGlkPSdzcGxpdGJhcicgb25jbGljaz0nc3dpdGNoU2VuZEluZm9CYXIoKSc+DQoJCQkJCQkJCSAgICAgICA8c3BhbiBpZD0nc3dpdGNoUG9pbnQnIGNsYXNzPSdzd2l0Y2hvcGVuJyB0aXRsZT0n5YWz6Zet5rS+6YCB5L+h5oGvJz48L3NwYW4+DQoJCQkJCQkgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBpZD0nc2VuZEluZm9Db250YWluZXInIHZhbGlnbj0ndG9wJz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9J3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6YXV0byc+ICAgICAgICAgICAgICAgIDxmaWVsZHNldCBzdHlsZT0nd2lkdGg6MzAwcHg7aGVpZ2h0OjI1MHB4O292ZXJmbG93LXg6YXV0byc+DQoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQgc3R5bGU9J2ZvbnQtc2l6ZTo5cHQ7Zm9udC13ZWlnaHQ6Ym9sZDsnPiZuYnNwO+WbnummiOS/oeaBryZuYnNwOzwvbGVnZW5kPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSd3aWR0aDo1MDBweDtoZWlnaHQ6MjIwcHgnIHNyYz0nL2Utd29yay9kb2NtZ3IvdXNlcmRvY19yZXBseWluZm8uYXNweD9zZXFudW09NDE3MiZvdHlwZT1TJmFyY2g9MScgc2Nyb2xsaW5nPSd5ZXMnIGZyYW1lYm9yZGVyPScwJz4NCgkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pZnJhbWU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBzdHlsZT0nd2lkdGg6MzAwcHg7aGVpZ2h0OjIwMHB4O292ZXJmbG93LXg6YXV0byc+DQoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQgc3R5bGU9J2ZvbnQtc2l6ZTo5cHQ7Zm9udC13ZWlnaHQ6Ym9sZDsnPiZuYnNwO+WOhuWPsua0vumAgeS/oeaBryZuYnNwOzwvbGVnZW5kPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSd3aWR0aDo5OSU7aGVpZ2h0OjE3MHB4JyBzcmM9Jy9lLXdvcmsvZG9jbWdyL3VzZXJkb2Nfc2VuZGRlc2MuYXNweD9zZXFudW09NDE3MiZvdHlwZT1TJmFyY2g9MScgc2Nyb2xsaW5nPSd5ZXMnIGZyYW1lYm9yZGVyPScwJz4NCgkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pZnJhbWU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAJICAgICAgICAgICAgICAgICAgICAgPC90cj4NCgkgICAgICAgICAgICAgICAgIDwvdGFibGU+ZAItDxYCHwFlZAIzDxYCHwEFODxhIGhyZWY9ImphdmFzY3JpcHQ6Vmlld0Z0ZGVmKCc0MTcyJyk7Ij7mn6XnnIvmtYHnqIs8L2E+ZAI1DzwrAAsBAA8WCB4IRGF0YUtleXMWAB4LXyFJdGVtQ291bnQCCR4JUGFnZUNvdW50AgEeFV8hRGF0YVNvdXJjZUl0ZW1Db3VudAIJZBYCZg9kFhICAQ9kFhBmDw8WAh8BBQbmi5/nqL9kZAIBDw8WAh8BBQbmooHpopZkZAICDw8WAh8BBQYmbmJzcDtkZAIDDw8WAh8BBQgyMDIwLTEtNmRkAgQPDxYCHwEFCDIwMjAtMS02ZGQCBQ8PFgIfAQUG5bey5YqeZGQCBg8PFgIfAQUJ5bey5b2S5qGjZGQCBw9kFgJmDw8WBB8BZR4LTmF2aWdhdGVVcmwFKGphdmFzY3JpcHQ6U2hvd1Byb2NkZXNjKCc0MTcyfDk2NzYzOTh8JylkZAICD2QWEGYPDxYCHwEFBuWuoeaguGRkAgEPDxYCHwEFCeeuoeWFiei+iWRkAgIPDxYCHwEFCiAgICAgICAgIDdkZAIDDw8WAh8BBQgyMDIwLTEtNmRkAgQPDxYCHwEFCDIwMjAtMS02ZGQCBQ8PFgIfAQUG5bey5YqeZGQCBg8PFgIfAQUJ5bey5b2S5qGjZGQCBw9kFgJmDw8WBB8BBQbmn6XnnIsfBgUoamF2YXNjcmlwdDpTaG93UHJvY2Rlc2MoJzQxNzJ8OTY3MjAwNXwnKWRkAgMPZBYQZg8PFgIfAQUG5qC456i/ZGQCAQ8PFgIfAQUJ5byg6ZKw5auSZGQCAg8PFgIfAQUKICAgICAgICAgN2RkAgMPDxYCHwEFCDIwMjAtMS02ZGQCBA8PFgIfAQUIMjAyMC0xLTZkZAIFDw8WAh8BBQblt7Llip5kZAIGDw8WAh8BBQnlt7LlvZLmoaNkZAIHD2QWAmYPDxYEHwEFBuafpeecix8GBShqYXZhc2NyaXB0OlNob3dQcm9jZGVzYygnNDE3Mnw5Njc2NjQyfCcpZGQCBA9kFhBmDw8WAh8BBQbnrb7lj5FkZAIBDw8WAh8BBQnpmYjluobljY5kZAICDw8WAh8BBQogICAgICAgICA3ZGQCAw8PFgIfAQUIMjAyMC0xLTZkZAIEDw8WAh8BBQgyMDIwLTEtNmRkAgUPDxYCHwEFBuW3suWKnmRkAgYPDxYCHwEFCeW3suW9kuaho2RkAgcPZBYCZg8PFgQfAQUG5p+l55yLHwYFKGphdmFzY3JpcHQ6U2hvd1Byb2NkZXNjKCc0MTcyfDk2NzY2MjF8JylkZAIFD2QWEGYPDxYCHwEFBue8luWPt2RkAgEPDxYCHwEFBumZiOeHlWRkAgIPDxYCHwEFCiAgICAgICAgIDdkZAIDDw8WAh8BBQgyMDIwLTEtNmRkAgQPDxYCHwEFCDIwMjAtMS03ZGQCBQ8PFgIfAQUG5bey5YqeZGQCBg8PFgIfAQUJ5bey5b2S5qGjZGQCBw9kFgJmDw8WBB8BBQbmn6XnnIsfBgUoamF2YXNjcmlwdDpTaG93UHJvY2Rlc2MoJzQxNzJ8OTY3NjI1OXwnKWRkAgYPZBYQZg8PFgIfAQUG5o6S54mIZGQCAQ8PFgIfAQUG6ZmI54eVZGQCAg8PFgIfAQUKICAgICAgICAgN2RkAgMPDxYCHwEFCDIwMjAtMS03ZGQCBA8PFgIfAQUIMjAyMC0xLTdkZAIFDw8WAh8BBQblt7Llip5kZAIGDw8WAh8BBQnlt7LlvZLmoaNkZAIHD2QWAmYPDxYEHwEFBuafpeecix8GBShqYXZhc2NyaXB0OlNob3dQcm9jZGVzYygnNDE3Mnw5Njc2MjU5fCcpZGQCBw9kFhBmDw8WAh8BBQbmoKHlr7lkZAIBDw8WAh8BBQbmooHpopZkZAICDw8WAh8BBQogICAgICAgICA3ZGQCAw8PFgIfAQUIMjAyMC0xLTdkZAIEDw8WAh8BBQgyMDIwLTEtN2RkAgUPDxYCHwEFBuW3suWKnmRkAgYPDxYCHwEFCeW3suW9kuaho2RkAgcPZBYCZg8PFgQfAQUG5p+l55yLHwYFKGphdmFzY3JpcHQ6U2hvd1Byb2NkZXNjKCc0MTcyfDk2NzYzOTh8JylkZAIID2QWEGYPDxYCHwEFBuaJk+WNsGRkAgEPDxYCHwEFBumZiOeHlWRkAgIPDxYCHwEFCiAgICAgICAgIDdkZAIDDw8WAh8BBQgyMDIwLTEtN2RkAgQPDxYCHwEFCDIwMjAtMS03ZGQCBQ8PFgIfAQUG5bey5YqeZGQCBg8PFgIfAQUJ5bey5b2S5qGjZGQCBw9kFgJmDw8WBB8BBQbmn6XnnIsfBgUoamF2YXNjcmlwdDpTaG93UHJvY2Rlc2MoJzQxNzJ8OTY3NjI1OXwnKWRkAgkPZBYQZg8PFgIfAQUG55uW56ugZGQCAQ8PFgIfAQUJ5p6X5YCp5YCpZGQCAg8PFgIfAQUKICAgICAgICAgN2RkAgMPDxYCHwEFCDIwMjAtMS03ZGQCBA8PFgIfAQUIMjAyMC0xLTdkZAIFDw8WAh8BBQblt7Llip5kZAIGDw8WAh8BBQnlt7LlvZLmoaNkZAIHD2QWAmYPDxYEHwEFBuafpeecix8GBShqYXZhc2NyaXB0OlNob3dQcm9jZGVzYygnNDE3Mnw5Njc2NTE2fCcpZGQCNw88KwALAGQCBQ9kFgYCAQ8WAh8AaGQCBQ8WAh8AaGQCCw8WAh8AZ2QCAw8WAh8BBRlHZXRTbmRkb2NDb250ZW50KCc0MTcyJyk7ZGQ="> <script src="/ajaxpro/prototype.ashx" type="text/javascript"></script> <script src="/ajaxpro/core.ashx" type="text/javascript"></script> <script src="/ajaxpro/converter.ashx" type="text/javascript"></script> <script src="/ajaxpro/hjoa.HJOAHelper,App_Code.ashx" type="text/javascript"></script> <table width="100%" style="font-size: 12px;" border="0" cellspacing="0" cellpadding="0"> <tbody><tr id="ctl03"><td><table width="100%" class="nbordertbl" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="pageheadleft"></td><td class="pagehead"> <input name="btnPrint" class="pagebtn" id="btnPrint" onclick="PrintDoc()" type="button" value="打印正文"> <input name="btnSave" class="pagebtn" id="btnSave" onclick="SaveDoc()" type="button" value="另存正文"> <input name="btnValDocSeal" class="pagebtn" id="btnValDocSeal" onclick="ValidateDocSeal()" type="button" value="验证有效性"> <input class="pagebtn" onclick="window.close();" type="button" value="返回"> </td><td class="pageheadright"></td></tr></tbody></table></td></tr>
pa1318 2020-10-24
  • 打赏
  • 举报
回复
引用 15 楼 Swing0_0 的回复:
看了一下 太乱了,必须模拟整个过程我才有把握 或者在开发者工具里找一下snddoc_view文件中的url需要的参数,然后一个个试一下,抱歉
没事,谢谢!
秋千Swing0_0 2020-10-24
  • 打赏
  • 举报
回复
看了一下 太乱了,必须模拟整个过程我才有把握 或者在开发者工具里找一下snddoc_view文件中的url需要的参数,然后一个个试一下,抱歉
pa1318 2020-10-24
  • 打赏
  • 举报
回复
引用 13 楼 Swing0_0 的回复:
你干脆把整个网页 + js全部发我邮箱吧 yiyue1047831462@foxmail.com
已经发你了,弹窗只支持ie浏览器。
秋千Swing0_0 2020-10-23
  • 打赏
  • 举报
回复
省略号里是啥 就这一个地方有嘛 把所有相关的找一下
pa1318 2020-10-23
  • 打赏
  • 举报
回复
js我不懂,这个页面截下来请你看一下,不知道有没有用。
pa1318 2020-10-20
  • 打赏
  • 举报
回复
js里面的onClick就是调用一个函数,没有超链接,函数贴上来帮我看一下: function SaveDoc() { var suffix = g_isUserView ? "pdf" : "doc"; var fn = IEHelper.IEH_GetNewFileName("请指定新文件名:", suffix); if (fn != null && fn != "") { var l = IEHelper.IEH_CopyFile(g_fileName, fn); if (l == 1) { HJAlert("另存文件完成!"); if (g_isUserView) { // 用户查看时记录文件下载情况 var operDesc = "下载文件序号为【" + form1.hdnSeqnum.value + "】的文件"; hjoa.HJOAHelper.AjaxReportUserOperEvent(2, g_userId, operDesc, form1.hdnSeqnum.value, "", "", ""); } } else { HJAlert("另存文件出错!"); } } }
秋千Swing0_0 2020-10-20
  • 打赏
  • 举报
回复
找一下g_isUserView是哪定义的
pa1318 2020-10-19
  • 打赏
  • 举报
回复
引用 4 楼 Swing0_0 的回复:
发下网站来看看
在内网啊
秋千Swing0_0 2020-10-19
  • 打赏
  • 举报
回复
发下网站来看看
秋千Swing0_0 2020-10-19
  • 打赏
  • 举报
回复
那你只能逆向一波了,看看能不能找到触发的是哪个onClick,或者看看js里有没有
pa1318 2020-10-18
  • 打赏
  • 举报
回复
引用 1 楼 Swing0_0 的回复:
用Selenium的Alert类试试,给你一篇文档参考一下: https://blog.csdn.net/kelanmomo/article/details/82886374?utm_medium=distribute.pc_relevant_bbs_down.none-task--2~all~first_rank_v2~rank_v25-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task--2~all~first_rank_v2~rank_v25-1.nonecase send_keys(keysToSend) 与 accept() 应该能实现你要的功能吧
刚测试一下,prompt.send_keys()可以,但prompt.accept()却用不了,后来直接装了pyautogui模拟按键了。现在的问题是,批量下载的话,每下一个文件都要开一个窗口,再处理弹窗,这样效率很低,不知道有没有办法不弹窗直接把页面中的文件取出来。实际测试发现,页面打开后,目标文件就已经在本地了(不知道是不是在缓存中),弹窗的另存为操作并没有连接到服务器,只是把页面中的文件存到文件夹。
pa1318 2020-10-18
  • 打赏
  • 举报
回复
引用 1 楼 Swing0_0 的回复:
用Selenium的Alert类试试,给你一篇文档参考一下: https://blog.csdn.net/kelanmomo/article/details/82886374?utm_medium=distribute.pc_relevant_bbs_down.none-task--2~all~first_rank_v2~rank_v25-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task--2~all~first_rank_v2~rank_v25-1.nonecase send_keys(keysToSend) 与 accept() 应该能实现你要的功能吧
谢谢,我去学习一下
秋千Swing0_0 2020-10-18
  • 打赏
  • 举报
回复
用Selenium的Alert类试试,给你一篇文档参考一下: https://blog.csdn.net/kelanmomo/article/details/82886374?utm_medium=distribute.pc_relevant_bbs_down.none-task--2~all~first_rank_v2~rank_v25-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task--2~all~first_rank_v2~rank_v25-1.nonecase send_keys(keysToSend) 与 accept() 应该能实现你要的功能吧

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧