requests.get()方法即使网站明显在线也会超时

时间:2016-09-17 17:51:00

标签: python-3.x http python-requests bots

所以,我决定通过学习一门新语言并开始构建机器人来提高我的编程技巧。 “hackthissite.org”有几个我想要完成的编程挑战。第一个是解读一些词。

好的,够简单。让我创建一个登录并首先隔离单词的脚本。

我似乎无法在15秒内连接到该网站。我正在使用“请求”API执行此操作。这是我的代码:

def main():
print("Starting Prograam")
session = requests.session()
session = requests.get("https://www.hackthissite.org/pages/index/index.php")
print(str(session.status_code))
print("Successfully Connected to the site") #TODO: Error Handling
login = {'username' : 'My Account Username', 'password' : 'Terrible Hard-coded Password Here'}
session = requests.post("https://www.hackthissite.org/user/login", data=login)
bs = BeautifulSoup(session.content, "html.parser")
print(bs.prettify())

main()

该程序运行了11年,我最终得到超时错误或等待一段时间,我知道我不应该等待。我似乎无法在互联网上找到任何与我同样问题的人。它是“hackthissite.org”对抗机器人的东西吗?我是否需要以某种方式屏蔽我作为用户的活动?

1 个答案:

答案 0 :(得分:0)

您永远不会使用您首次创建的会话,因此最后两行的所有行都无关紧要,登录您需要的只是您的用户名,密码并将 referer 标题设置为https://www.hackthissite.org

def main():
    print("Starting Program")
    with  requests.session() as session:
        login = {"username": "username",
                 "password": "pass",
                 "btn_submit": "Login"}
        session.headers.update({"referer":"https://www.hackthissite.org"})
        s = session.post("https://www.hackthissite.org/user/login", data=login)
        bs = BeautifulSoup(s.content, "html.parser")
        print(bs.prettify())

完成后,您将在输出中看到您的个人资料页面。