IndexError: list index out of range на втором цикле
Помогите кто не будь в чем проблема. Пишу небольшого бота лайкера постов ВК, наткнулся на непонятную ошибку. Первый цикл проходит без нареканий на втором цикле выдает
window_after = driver.window_handles[1] IndexError: list index out of range
если кликать вручную все работает CLASS у всех кнопок одинаковый. Почему он не может найти класс?
for item in driver.find_elements(By.CLASS_NAME, "insidebtn"):
driver.execute_script("arguments[0].click();", item)
time.sleep(2)
window_after = driver.window_handles[1]
driver.switch_to.window(window_after)
time.sleep(2)
url = driver.current_url
result = re.search(r"/([a-z]+)(-?\d+)_(\d+)", url)
type_name, owner_id, item_id = result.groups()
if type_name == "wall":
type_name = "post"
url = 'https://api.vk.com/method/likes.add?type=%s&owner_id=%s&item_id=%s&v=5.131&access_token=%s' % (type_name, owner_id, item_id, token)
req = requests.get(url).text
driver.switch_to.window(driver.window_handles[-1])
time.sleep(3)
driver.close()
driver.switch_to.window(driver.window_handles[-1])
time.sleep(5)
Решил пойти другим путем, распарсить кнопку не переходя по ссылке вытянуть параметры отправить запрос на vk api и кликнуть на проверку. Может кто подскажет как из
<div class="insidebtn" id="load4468979" onclick="proverka(4468979, 4468979, "vklike", "https://vk.com/photo174636499_457239378");">
<i class="fa fa-plus-circle"></i> 8 баллов
</div>
вытащить https://vk.com/photo174636499_457239378
Ответы (1 шт):
Автор решения: team arden
→ Ссылка
for url1 in users_url:
print(url1)
time.sleep(2)
#url1 = driver.current_url ### Забрать ссылку из адресной строки
result = re.search(r"/([a-z]+)(-?\d+)_(\d+)", url1)
type_name, owner_id, item_id = result.groups()
if type_name == "wall":
type_name = "post"
url = 'https://api.vk.com/method/likes.add?type=%s&owner_id=%s&item_id=%s&v=5.131&access_token=%s' % (type_name, owner_id, item_id, token)
req = requests.post(url).json()
print(req)
try:
if req != req['response']['likes']:
continue
except:
error = req['error']['error_code']
if error == 14:
#print("error")
captcha_sid = req['error']['captcha_sid']
captcha_img = req['error']['captcha_img']
with open('newfile.jpg', 'wb') as target:
a = requests.post(f'{captcha_img}')
target.write(a.content)
captcha_key = vc.solve(image='newfile.jpg')
print(f"Капча : {captcha_key}")
url = 'https://api.vk.com/method/likes.add?captcha_sid=%s&captcha_key=%s&type=%s&owner_id=%s&item_id=%s&v=5.131&access_token=%s' % (
captcha_sid, captcha_key, type_name, owner_id, item_id, token)
req = requests.post(url).json()
print(req)