Я работал над этим проектом, где сайт дает мне 3 числа с изображениями. Я быстро узнал, что разработчики забыли изменить имя файлов PNG в источнике HTML, поэтому я научился читать их, используя code.
Я уже настроил код с селеном и beatifulsoup, чтобы создать страницу chrome с этим конкретным сайтом. Дайте мне время для входа. Прочитайте источник HTML в текстовом коде, найдите числа и вставьте их в указанную область и нажмите кнопку продолжения. Затем l oop.
import time
import re
import numbers
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path = "C:/Users/user/Desktop/Personal/PythonScripts/chromedriver.exe")
driver.get('URL I USED')
time.sleep(20)
driver.refresh()
soup = BeautifulSoup(driver.page_source ,"lxml")
all_items = soup.find_all('img')
for item in all_items:
print('char:', item['src'][-5])
LIST = [item['src'][-5] for item in all_items]
new_list = []
for value in LIST:
try:
new_list.append(int(value))
except ValueError:
continue
for i in new_list:
print(i, end="")
try :
driver.find_element_by_tag_name('input').send_keys(new_list[0],new_list[1],new_list[2])
except :
print('Fail')
html_source = driver.page_source
print(html_source)
button = driver.find_element_by_xpath('//*[@id="main"]/form/div[3]/input')
button.click()
time.sleep(5)
while True:
for item in all_items:
print('char:', item['src'][-5])
LIST = [item['src'][-5] for item in all_items]
new_list = []
for value in LIST:
try:
new_list.append(int(value))
except ValueError:
continue
for i in new_list:
print(i, end="")
try :
driver.find_element_by_tag_name('input').send_keys(new_list[0],new_list[1],new_list[2])
except :
print('Fail')
html_source = driver.page_source
print(html_source)
new_list.clear()
button.click()
time.sleep(10)
driver.refresh()
Я довольно плохо знаком с python и кодированием в целом, поэтому не стесняйтесь указывать на мои ошибки, даже не связанные с топи c. Моя проблема в том, что страница не обязательно перезагружается после нажатия кнопки «Продолжить», и я пытался не перезагружать ее, но мой код правильно «читает» первый опрос, но не проходит на последующих, так как он заполняет пробел ранее использованными номерами (только первый один). Я добавил больше необходимого количества времени сна. Удалил driver.refresh()
в конце l oop. Ни один из них не сработал.
Заранее спасибо