Python 线程发布脚本,invision powerboard
我们在某个网站上做两件事,下载新文件和发布文件,它们很容易定义(而且很乏味),所以我一直在尝试编写脚本 总之,我已经完成了文件下载脚本。我可以重新使用登录代码Python 线程发布脚本,invision powerboard,python,python-3.x,urllib,invision-power-board,Python,Python 3.x,Urllib,Invision Power Board,我们在某个网站上做两件事,下载新文件和发布文件,它们很容易定义(而且很乏味),所以我一直在尝试编写脚本 总之,我已经完成了文件下载脚本。我可以重新使用登录代码 #Cookies cookies = http.cookiejar.LWPCookieJar() opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookies)) urllib.request.install_opener(opener)
#Cookies
cookies = http.cookiejar.LWPCookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookies))
urllib.request.install_opener(opener)
#Authenticate user
print("logging in")
url = "http://someurl.com/index.php?app=core&module=global§ion=login&do=process"
values = {"username" : USERNAME,
"password" : PASSWORD}
data = urllib.parse.urlencode(values)
req = urllib.request.Request(url, data)
urllib.request.urlopen(req)
但是要发布一个包含上述文件的线程,您必须附加它。我知道如何发送正确的标题和文字的线程从我学到了如何登录。我的问题是,要附加文件,您必须向表单发送请求,而不是页面请求。
例如,从“文件”对话框中选择所需的文件,然后单击“附加文件”,然后将其上载,然后完成所需线程的编写,然后提交页面
下面是相关的html
<fieldset class='attachments'>
<script type='text/javascript'>
//<![CDATA[
ipb.lang['used_space'] = "Used <strong>[used]</strong> of your <strong>[total]</strong> global upload quota (Max. single file size: <strong>256MB</strong>)";
//]]>
</script>
<h3 class='bar'>Attachments</h3>
<!--SKINNOTE: traditional uploader needs this. -->
<div id='attach_error_box' class='message error' style='display:none'></div>
<input type='file' id='nojs_attach_0_1' class='input_upload' name='FILE_UPLOAD' tabindex='1' />
<input type='file' id='nojs_attach_0_2' class='input_upload' name='FILE_UPLOAD' tabindex='1' />
<ul id='attachments'><li style='display: none'></li></ul>
<br />
<span id='buttonPlaceholder'></span>
<input type='button' id='add_files_attach_0' class='input_submit' value='Attach This File' style='display: none; clear: both' tabindex='1' /> <span class='desc' id='space_info_attach_0'>Used <strong>9.45MB</strong> of your <strong>976.56MB</strong> global upload quota (Max. single file size: <strong>256MB</strong>)</span>
//
附件
使用了您的976.56MB全局上载配额的9.45MB(最大单个文件大小:256MB)
我不知道如何编码,所以我在寻找方向
另外,如果这个sorta脚本在其他语言中可能更容易,请告诉我是哪种语言?我使用python只是因为我知道它
非常感谢。仅供参考:表单提交是页面请求,当您登录时,由于您在Request()调用中使用了数据值,因此您已经向表单发送了post请求。问题是如何将文件发送到哪个URL等,这可能很棘手,因为它是通过javascript完成的。