gpt4 book ai didi

python - 这个错误对 python 中的 Mechanize 意味着什么?

转载 作者:行者123 更新时间:2023-12-04 16:19:40 25 4
gpt4 key购买 nike

我正在尝试用 Python 制作一个机器人来完成 codecademy 类(class)并尽快填写所有类(class),因为我们必须为高中类(class)完成它们,而我一直在使用 Python 和 Mechanize 来完成它。我已经填写了我认为是这个程序的基础知识,我必须填写的是具体的类(class)细节,但我一直遇到同样的错误

File "codecademy.py", line 11, in <module>
br.open(codecademy) #opens codecademy
File "build/bdist.macosx-10.10-intel/egg/mechanize/_mechanize.py", line 203, in open
File "build/bdist.macosx-10.10-intel/egg/mechanize/_mechanize.py", line 216, in _mech_open
mechanize._mechanize.BrowserStateError: can't fetch relative reference: not viewing any document

我不确定这意味着什么。我已经检查了 _mechanize.py 的第 203 行和第 216 行,但没有看到任何错误,我不知道需要修复什么,因为关于 Mechanize 的教程并不多。这是我的代码:
try:
import mechanize #tries to import mechanize
except ImportError: #if cant import mechanize
print 'Oops. It seems as if you do not have mechanize installed'
codecademy = 'www.codecademy.com' #stores codecademy link as a variable
codecademySI = 'http://www.codecademy.com/sign_in' #codecademy sign in link
codecademyJS = 'http://www.codecademy.com/courses/getting-started-v2/0/1?curriculum_id=506324b3a7dffd00020bf661' #Javascript link

br = mechanize.Browser() #make a mechanize browser object, acts as virtual browser, emulator
br.open(codecademy) #opens codecademy

signing up
def signUp(username, password, email):
br.select_form(nr=0) #selects first form on the page

br["user[email]"] = email #sets value of email field to whatever user entered
br["user[password]"] = password #sets value of username field to whatever user entered
br["user[username]"] = username #sets value of password field to whatever user entered

submittionResult = br.submit() #submits data entered above

def logIn(username, password):
br.open(codecademySI) #opens codecademy

br.select_form('sign-in-form')#finds login button
br.form ['q'] = query
br.submit()#clicks login button

br["user[login]"] = username #sets value of email/username field to whatever user entered
br["user[password]"] = password #sets value of password field to whatever user entered

submittionResult = br.submit() #submits data entered above, local so doesn't override other Submittion Result

def _JS():
br.open(codecamedyJS)
#ace_text-input ui-inited
js = 1
if(js == 1):
br["ace_text-input ui-inited"] = '"Name"'
js =+ 1
elif(js == 2):
br["ace_text-input ui-inited"] = '"Name".length'
js =+ 1
elif(js == 3):
br["ace_text-input ui-inited"] = '3 + 4'
js =+ 1
elif(js == 4):
br["ace_text-input ui-inited"] = '4 * 4'
js =+ 1
elif(js == 5):
br["ace_text-input ui-inited"] = 'eggplant'
js =+ 1
elif(js == 6):
br["ace_text-input ui-inited"] = '"cake".length'
js =+ 1
elif(js == 7):
br["ace_text-input ui-inited"] = 'confirm("This is an example of using JS to create some interaction on a website. Click OK to continue!");'
js =+ 1
elif(js == 8):
br["ace_text-input ui-inited"] = 'confirm("I fell awesome!")'
js =+ 1
elif(js == 9):
br["ace_text-input ui-inited"] = 'prompt("What is your name?");'
js =+ 1
elif(js == 10):
br["ace_text-input ui-inited"] = '"string with words".length'
js =+ 1
elif(js == 11):
br["ace_text-input ui-inited"] = '"Im coding like a champ".length'
js =+ 1
#browser.form = list(browser.forms())[0] #find form with no name
br.select_form('ui-button ui-button--medium ui-button--blue--on-dark ui-loading js-submit-code')
br.form ['q'] = query
br.submit()
#signUp(russ999999, PASSWORD, russ9@optonline.net)
logIn(russ99999, PASSWORD)

最佳答案

您可能会为此而自责,但您需要在 URL 中包含该方案,即 http .尝试改变

codecademy = 'www.codecademy.com'


codecademy = 'http://www.codecademy.com'

关于python - 这个错误对 python 中的 Mechanize 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27392353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com