小编Dan*_*iev的帖子

无法使用robobrowser提交表单。无效的提交错误

这是我的代码:从robobrowser导入浏览器

    url = 'http://diesel.elcat.kg/index.php?act=Login&CODE=00'
    url3 = 'http://diesel.elcat.kg/index.php?act=post&do=reply_post&f=178&t=233500064'
    m = browser.RoboBrowser()
    m.open(url)
    # SIGNING IN(form1)
    form1 = m.get_form(action='https://diesel.elcat.kg/index.php?act=Login&CODE=01')
    form1['UserName'].value = 'Username'
    form1['PassWord'].value = 'Password'
    m.submit_form(form1)
    # FINISHED SIGNING IN(everything worked)
    # GOING TO THE PAGE WHERE FORM IS LOCATED
    m.open(url3)
    # Can't submit this form
    form2 = m.get_form(action="http://diesel.elcat.kg/index.php?")
    form2['Post'].value = 'up'
    m.submit_form(form2)
Run Code Online (Sandbox Code Playgroud)

我可以登录该网站,以便form1可以正常工作,但是在这种情况下尝试发表评论时,form2不起作用。我一直收到InvalidSubmit错误或Bad Request错误。form1的代码和form2的代码似乎相同,但是一个有效,而另一个无效。我正在使用python3.5和robobrowser,并且我正在使用Mac OS(如果有帮助)。先感谢您。这是我的回溯:

Traceback (most recent call last):
File "/Users/bkkadmin/Desktop/Daniiar/upper/test2.py", line 18, in <module>
 m.submit_form(form)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/robobrowser-0.5.3-py3.5.egg/robobrowser/browser.py", line 339, in submit_form
 payload = form.serialize(submit=submit)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/robobrowser-0.5.3-py3.5.egg/robobrowser/forms/form.py", line 226, in …
Run Code Online (Sandbox Code Playgroud)

beautifulsoup request python-3.x robobrowser

3
推荐指数
1
解决办法
1278
查看次数

如何使用python终止外部程序或窗口

我试图关闭程序,在本例中是 Spotify,但我不断遇到语义错误。这是我的代码:

sup_programs.txt

{ 
'spotify': ['C:/Users/Daniiar/AppData/Roaming/Spotify/Spotify.exe']
}
Run Code Online (Sandbox Code Playgroud)

脚本:

class Path(object):
    import ast
    sup_programs_txt = open('sup_programs.txt', 'r')
    s_p = sup_programs_txt.read()
    paths = ast.literal_eval(s_p)
    sup_programs_txt.close()
paths = Path().paths
program_name = 'spotify'


def open_program(path_name):
    import subprocess
    subprocess.Popen(path_name)
    open_program(paths[program_name])


def close_program(path_name):
    import subprocess
    p = subprocess.Popen(path_name)
    p.terminate()


yes = input(" ... ")
if 'close' in yes or 'yes' in yes:
    close_program(paths[program_name])
else:
    print('too bad')
Run Code Online (Sandbox Code Playgroud)

我使用了kill()和terminate(),它们都没有工作,并且os.system('TASKKILL')是否有其他方法或者错误地使用了现有的方法?

顺便说一句,我使用的是 windows 10 和 python 3.5 。感谢您的帮助

python subprocess python-3.x

2
推荐指数
1
解决办法
1万
查看次数