目前,我能够将图像上传到test.commons.wikipedia 使用从原始MediaWiki取出的代码
但图像被上传到Https://upload.wikimedia.org/wikipedia/test 我希望将其上传到此网站
https://upload.wikimedia.org/wikipedia/commonsURL = "https://test.wikipedia.org/w/api.php"
更改为
URL = "https://commons.wikipedia.org/w/api.php"
时我正面临此错误,当调用
R.json()
时,其中
R = S.post(URL, files=FILE, data=PARAMS_4)
,其中FILE = {'file':('file_1.jpg', open(FILE_PATH, 'rb'), 'multipart/form-data')}
和params_4是上传images的参数
PARAMS_4 = {
"action": "upload",
"filename": "file_11a.jpg",
"format": "json",
"token": CSRF_TOKEN,
"ignorewarnings": 1
}
# CSRF_TOKEN WAS SUCCESFULLY RETRIVED but it returns only "+\" for commons, but for test it returns a alphanumeric csrf token ending with "+"
已导致以下错误File "AppData\Local\Programs\Python\Python310\lib\site-packages\requests\models.py", line 978, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我能理解的是,响应是
200
表示图像已上传,但是返回的JSON()为空或空,因此发生了错误。
我认为应该对参数进行调整很少,以使其与公共相匹配,我得到的JSON响应可以将图像的URL或位置上传到Servere
现在我想要上传图像的URL,我如何找到,还有其他方法吗? nor如何在https://upload.wikimedia.org/wikipedia/test和
Https://upload.wikimedia.org/wikipedia/commons和time for time time the time the timentiles/extine time以外,直到现在,直到e ande timentip ticles,直到eventile timentip eastiles,直到evertialementive是,直到现在,直至还可以更改或保持与上传时相同的链接,
我想知道它们是否与存储,访问和性能有关 我可以以任何一种方式做到这一点,如果测试和公共之间没有太大差异,那么电流应该没问题,否则,我想要一种用于共享的方法(将图像文件上传到Commons并获取其公共URL)或其他方法可以使用API上传到Wikipedia并获取图像公共URL 或我如何获取由我或我的帐户上传到Wikipedia的图像列表使用MediaWikiAPI 也尝试了上传的图像,但我找不到使用Https://commons.wikipedia.org/w/api.php
上传的图像,但是我可以从https上载上载图像: https://commons.wikipedia.org/w/api.php,但是为什么它将其返回代码为
https://<language>.wikipedia.org/wiki/Special:FilePath/<filename>
任何以任何形式相关的帮助,请回答与问题有关的答案,诸如许可之类的其他考虑因素已经得到照顾。
我弄清楚了,CSRF代币检索存在问题,并且用户也没有登录,
尽管它为Https://test.wikipedia.org/w/api.php工作,我不知道为什么,但是对于https://commons.wikipedia.wikipedia.org/w/api.php获取登录令牌
login
获取CSRFToken