Не могу нажать кнопку

Я пытаюсь написать бота для игры, и мне нужна помощь. Будучи полным новичком, я погуглил, как это сделать с помощью Python, и начал немного читать о механизации.

<div class="clearfix">
                    <a href="#" onclick="return Index.submit_login('server_br73');">
            <span class="world_button_active">Mundo 73</span>
        </a>
                    </div>

Моя проблема заключается в входе в систему, где сейчас у меня есть этот необработанный код:

import requests
import requesocks
import xlrd
import socks
import socket
import mechanize
import selenium
from bs4 import BeautifulSoup

# EXCEL
file_location = "/home/luis/Dropbox/Projetos/TW/multisbr.xlsx"
wb = xlrd.open_workbook(file_location)
sheetname = wb.sheet_names ()
sh1 = wb.sheet_by_index(0)

def nickNm():
    lista = [sh1.col_values(0, x) for x in range (sh1.ncols)]
    listaNomes = lista [1]
    x < 1
    print listaNomes
def passwd():
    lista = [sh1.col_values(1, x) for x in range (sh1.ncols)]
    listaPasswd = lista [1]
    x < 1
    print listaPasswd

# TOR

def create_connection(address, timeout=None, source_address=None):
    sock = socks.socksocket()
    sock.connect(address)
    return sock

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)

# patch the socket module
socket.socket = socks.socksocket
socket.create_connection = create_connection

#BeautifulSoup

def get_source ():
    url = 'https://www.tribalwars.com.br'
    source_code = requests.get(url)
    plain_text = source_code.text
    soup = BeautifulSoup(plain_text, 'lxml')

# ALFA
br = mechanize.Browser ()
twbr = 'https://www.tribalwars.com.br/index.php'

def alfa ():
    br.open(link)

    br.select_form(nr=0)
    br["user"] = "something"
    br["password"] = "pword"

    result = br.submit()

    br.geturl()


nickNm()
passwd()
alfa()

person Luis Silva    schedule 19.12.2015    source источник
comment
а что не так с твоим кодом? какое сообщение об ошибке вы получаете?   -  person tagoma    schedule 19.12.2015
comment
Ошибок нет. Я просто не могу нажать на кнопку, которая выскакивает после нажатия кнопки входа в систему. HTML-код в начале - это кнопка, которую я пытаюсь нажать   -  person Luis Silva    schedule 19.12.2015
comment
Я думаю, теперь вы можете удалить отрицательные голоса, поскольку вопрос был улучшен, теперь он более четкий и содержит необходимые детали.   -  person alecxe    schedule 30.12.2015
comment
@LuisSilva, думали ли вы о переходе на selenium? Спасибо.   -  person alecxe    schedule 30.12.2015
comment
Итак, когда вы говорите, что пытаетесь закодировать бота для игры, вы имеете в виду, что пытаетесь создать сценарий, который будет входить в систему, нажимать кнопки и тому подобное в сетевой игре?   -  person ThatAintWorking    schedule 05.01.2016


Ответы (1)


Когда вы выполняете различные действия на странице, задействуется довольно много javascript, mechanize не является браузером и не может выполнять javascript. Один из способов упростить вам жизнь - это автоматизировать настоящий браузер. Вот пример кода для входа в tribalwars с помощью selenium и безголового PhantomJS:

from selenium import webdriver

driver = webdriver.PhantomJS()
driver.get("https://www.tribalwars.com.br/index.php")

# logging in
driver.find_element_by_id("user").send_keys("user")
driver.find_element_by_id("password").send_keys("password")
driver.find_element_by_css_selector("a.login_button").click()
person alecxe    schedule 30.12.2015