实现亚马逊广告自动执行点击 懂得都懂

 

1.需要实现功能:
(1)打开首页
(2)登录账号
(3)搜索关键词,区别广告
(4)排除自己的asin和标题
(5)点击别的asin的广告,进入详情
 
第一步:打开谷歌驱动器:
driver = util.make_driver(ip=ip, disable_javascript=True)
 
def make_driver(ip,disable_javascript=True):
options = webdriver.ChromeOptions()
 
参数配置见登录页面
driver = webdriver.Remote(SELENIUM_HUB_SERVER, options.to_capabilities())
 
driver.implicitly_wait(1)
driver.set_window_size(1920, 1080)
driver.set_page_load_timeout(120)
return driver
第二步:打开首页:
self.go('https://{host}'.format(host=self.host))
第三步:点击登录按钮:
self.click(self.until(lambda d: self.driver.find_element_by_id('nav-link-accountList')))
第四步:检查是否到登录页面:
assert self.is_element_exist('//*[@id="signInSubmit"]'), 'open login page error. can not open page.'
self.until(lambda d: self.driver.find_element_by_id('signInSubmit'))
 
from selenium.webdriver.support.ui import WebDriverWait
def until(self, method, timeout=115):
wait = webdriver.support.ui.WebDriverWait(self.driver, timeout)
return wait.until(method=method)
 
第五步:输入登录帐户和密码并且点击登录按钮:
self.driver.find_element_by_id('ap_email').send_keys(kwargs['email'])
self.driver.find_element_by_id('ap_password').send_keys(kwargs['password'])
self.driver.find_element_by_id('signInSubmit').click()
第六步:输入关键词并且点击搜索按钮
self.until(lambda d: self.driver.find_element_by_id('twotabsearchtextbox')).send_keys(kwargs['keyword'])
# step 2
# 点击搜索 提交
self.click(
self.until(
lambda d: self.driver.find_element_by_xpath('//input[@type="submit"][@class="nav-input"]')))
 
 
第七步:获取页面列表的所有产品
products = self.until(
lambda d: self.driver.find_elements_by_xpath('//li[contains(@class,"s-result-item")]'))
第八步:循环获取的产品.:
for product in products:
try:
# 查找有标记的产品
product.find_element_by_xpath('.//img[@class="s-sponsored-info-icon"]')
#获取产品asin
asin = product.get_attribute('data-asin')
 
#判断产品是不是本商店的
if ((asin,) in kwargs['asins']):
continue
else:
# 找链接
clickproduct = product.find_element_by_xpath(
'.//a[contains(@class,"s-access-detail-page s-color-twister-title-link")]')
link = clickproduct.get_attribute('href')
 
self.gonewtag(link)#打开新的标签
 
link_asin_list.append(asin)#记录点击的asin
time.sleep(2)
continue
except:
 
continue
付:正则获取页面asin:
def get_url_asin(self,url):
 
urlre = re.compile(r'%2Fdp%2F(.+?)%2Fref')
asin = re.findall(urlre, url)[0]
return asin
第九步:返回点击的asin:
return link_asin_list
posted @ 2022-03-08 14:13  李传陆  阅读(384)  评论(0编辑  收藏  举报