1

所以我们在某个站点上做了两件事,下载新文件和发布文件,它们很容易定义(而且乏味),所以我一直在尝试编写脚本。

所以无论如何,我已经完成了文件下载脚本。我可以重新使用登录代码

#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&section=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>

我不知道如何编码,所以我正在寻找方向。

另外在旁注中,如果这个排序脚本在其他语言中可能更容易告诉我哪个?我只使用 python,因为我知道它。

非常感谢。

4

0 回答 0