(ayrıca lol Gönder düğmesi ekleyin). Bir tarayıcıda GUI etkileşimlerini simüle eder. Rekabet formu verilerine girme gibi şeyler yaparken, bu en az tespit edilebilecek yol olacaktır.
Selenyum hakkında bir not: Bu dile özgü bir kitaplık değil. Her dil için müşteriye özel bağlamalar vardır. Çoğu örnek ve nasıl göreceğiniz, aslında Java'da yazılmıştır.
iyi bir kaynak Burada Selenium-python
senin çalışan bir örnektir. Gönder düğmesi dahil.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
i = 2 # do it 2 times
while i > 0:
driver = webdriver.Firefox()
driver.get("http://www.jonessoda.com/contests/back2school")
def find_by_xpath(locator):
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, locator))
)
return element
class FormPage(object):
def fill_form(self, data):
find_by_xpath('//input[@name = "fname"]').send_keys(data['fname'])
find_by_xpath('//input[@name = "lname"]').send_keys(data['lname'])
find_by_xpath('//input[@name = "email"]').send_keys(data['email'])
find_by_xpath('//select[@name = "birthday_month"]').send_keys(data['month'])
find_by_xpath('//select[@name = "birthday_day"]').send_keys(data['day'])
find_by_xpath('//select[@name = "birthday_year"]').send_keys(data['year'])
return self # makes it so you can call .submit() after calling this function
def submit(self):
find_by_xpath('//input[@value = "Submit"]').click()
data = {
'fname': 'Sheep',
'lname': 'Test',
'email': '[email protected]',
'month': 'October',
'day': '29',
'year': '1920'
}
FormPage().fill_form(data).submit()
driver.quit() # closes the webbrowser
i = i - 1
Çok teşekkür ederim! Tam olarak ne arıyordum ... ve ben GUI geir herhalde oldukça havalı. Python'a yeni başlayan biriyim (Birkaç hafta) En temel komutları biliyorum ama anlamadığım bir şey döngü işlevi. Döngü işlevine sahip olmak için bu kodu düzenleyebilir misiniz? (Ayrıca gönderme çalışmıyor) – DarkPirate
Eklendi. Gönder, eğer ararsan işe yarıyor. Göndermek için FormPage(). Submit() 'yapmalısınız. – sheeptest
Ayrıca, bir satırda 1000x gibi yaparsanız, aynı ip adresinizin gönderilerinde spam olduğunu görebiliyorsunuz. Gün içerisinde farklı rastgele zamanlarda programlamaya bakacağım. – sheeptest