Untitled
unknown
python
2 years ago
2.7 kB
11
Indexable
import asyncio
import base64
from playwright.async_api import async_playwright
board = "https://openbudget.uz/boards/initiatives/initiative/31/57f53c33-3b2b-4360-a076-e5fc7503a687"
async def get_captcha():
apw = await async_playwright().start()
browser = await apw.chromium.launch(headless=False)
page = await browser.new_page()
await page.goto(board)
button = await page.query_selector('//button[@class="mf-button mf-button-block mf-button-primary mb-2"]')
await button.click()
image = await page.query_selector('img[class="captcha-img"]')
captcha = await image.get_attribute('src')
image = base64.b64decode(captcha.split(" ")[1], validate=True)
file_to_save = "get_all_votes_captcha.png"
with open(file_to_save, "wb") as f:
f.write(image)
n = input("Captcha code... ")
input_element = await page.query_selector(f'//input[@class="captcha-result"]')
await input_element.fill(n)
button = await page.query_selector('//button[@class="mf-button mf-button-block mf-button-primary"]')
await button.click()
await asyncio.sleep(3)
all_rows = await page.query_selector_all('//li[@class="page-item"]')
end_row = int(await all_rows[-2].text_content())
next_btn = all_rows[-1]
table = await page.query_selector('//tbody[@class="mf-tbody"]')
content = (await table.text_content()).split("2023")
times = []
numbers = []
print("OK! Please wait.")
numbers.append(content[0].split("**-***-*")[1])
for i in content[1:-1]:
piec = i.split("**-***-*")
numbers.append(piec[-1])
times.append(piec[0][1:12])
times.append(content[-1][1:])
if end_row != 1:
for i in range(end_row-1):
await next_btn.click()
await asyncio.sleep(1)
while True:
try:
table = await page.query_selector('//tbody[@class="mf-tbody"]')
content = (await table.text_content()).split("2023")
numbers.append(content[0].split("**-***-*")[1])
for i in content[1:-1]:
piec = i.split("**-***-*")
numbers.append(piec[-1])
times.append(piec[0][1:12])
times.append(content[-1][1:])
break
except:
await asyncio.sleep(3)
pass
print(times)
print(numbers)
input("Press any button close page... ")
await page.screenshot(path="screen1.png")
await page.close()
asyncio.run(get_captcha())
Editor is loading...