Я слышал, что вы можете уклониться от ReCaptcha, перемещая мышь в виде b-сплайна.Уже построена функция (которая принимает в качестве входных данных несколько точек X, Y на экране). Однако, она, кажется, не попадает туда, куда я хочу, а гораздо ниже (отрицательный Y или отрицательный X), что недопустимо, так как мне приходится это делать.отрегулируйте его вручную.(движение)
импорт numpy как np
импорт matplotlib.pyplot как plt
импорт scipy.interpolate как si
def spline(points):
points = np.array(points)
x = points[:,0]
y = points[:,1]
t = range(len(points))
ipl_t = np.linspace(0.0, len(points) - 1, 100)
x_tup = si.splrep(t, x, k=3)
y_tup = si.splrep(t, y, k=3)
x_list = list(x_tup)
xl = x.tolist()
x_list[1] = xl + [0.0, 0.0, 0.0, 0.0]
y_list = list(y_tup)
yl = y.tolist()
y_list[1] = yl + [0.0, 0.0, 0.0, 0.0]
x_i = si.splev(ipl_t, x_list)
y_i = si.splev(ipl_t, y_list)
return [x_i, y_i]
# points = [[80, 77], [265, 210], [811, 304], [938, 140], [960, 150], [999, 188], [1002, 75]]
и затем вызывает его и фактически перемещает мышь
action = ActionChains(self.browser)
action.move_to_element(self.browser.find_element_by_xpath(xpath))
location = element.location
locationX = location['x']
locationY = location['y']
point_x, point_y = spline(array)
previousX, previousY = 30, 82 #manually adjusting
print(location)
# the spline function gives back X , Y coordinates
# now we have to adjust, by subtraction
for mouseX, mouseY in zip(point_x, point_y):
value_x, value_y = mouseX - previousX, mouseY - previousY
action.move_by_offset(value_x, value_y)
previousX = mouseX
previousY = mouseY
self.smallsleep(x=0, y=0.05)
action.click()
self.smallsleep(x=0, y=1) #smallsleep is just sleep between (0.0,1.0)
action.perform()
Что здесь не так:
Должна быть автоматическая настройка для каждогоперемещение от элемента к другому элементу, что на самом деле неудобно.
Мне нужно подобрать точки (т.е. точки = []) по расширению. Есть ли другой способ сделать это?
Не работает должным образом, b-сплайн генерируется неправильно, если X больше, чем следующий X, он не работает хорошо.