之前用了谷歌的selenium模块,为了练习一下 所以写了这个(没错 才不是别的理由!)dddd
代码里涉及到了各种复杂的情况,包括要找的div在别的iframe中的处理方式,顶部导航栏的定位方式等等。综合性很强
下面是代码
from selenium import webdriver
import time
from fake_useragent import UserAgent
opt = webdriver.ChromeOptions()
# opt.add_argument('--headless')
# 更换头部
ua = UserAgent()
opt.add_argument('user-agent="%s"' % ua.random)
driver = webdriver.Chrome(chrome_options=opt)
class HongZha:
def __init__(self):
self.phone = 'xxxxxxxxxxx' # your phone number
self.num = 0
# 发送验证码
def send_yzm(self, button, name):
button.click()
self.num += 1
print("{} 第{}次 发送成功 {}".format(self.phone, self.num, name))
def youku(self, name):
driver.get('https://www.youku.com/')
driver.implicitly_wait(10)
driver.find_element_by_xpath('//img[@class="a-avatar_17DKW"]').click()
time.sleep(3)
driver.find_element_by_xpath('//a[@href="javascript:void(0);"]').click()
time.sleep(3)
driver.find_element_by_xpath('//input[@class="fm-text"]').send_keys(self.phone)
button = driver.find_element_by_xpath('//a[@class="send-btn-link"]')
self.send_yzm(button, name)
# 瓜子注册接口
def guazi(self, name):
try:
driver.implicitly_wait(10)
driver.get("https://www.guazi.com/www/bj/buy")
a_btn = driver.find_element_by_xpath("//a[@class='uc-my']")
a_btn.click()
tel = driver.find_element_by_xpath("//input[@name='phone']")
tel.send_keys(self.phone)
button = driver.find_element_by_xpath("//button[@class='get-code']")
self.send_yzm(butto