最近优化了很多, 可以随机点击内页并且切换浏览器标签关闭窗口
本准备写个最完美的再发出来好留存,但是感觉这个代码要搁置一段时间了,因为想到了更好的东西,更能赚钱的东西。
import time
import random
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
browser.implicitly_wait(2)
browser.find_element_by_id('kw').send_keys("美女图片")
browser.find_element_by_id("su").click()
searchPage = browser.find_element_by_id("page")
def searchLink(searchPage):
#普通项
sites = browser.find_elements_by_xpath("//div[@id='content_left']/div[@class]/div[@class='f13']/a[1]")
#一个页面的网站数量
#快照项
kzSites = browser.find_elements_by_xpath("//div[@id='content_left']/div/div//a[text()]")
sites.extend(kzSites);
print(len(sites))
siteCount = len(sites)
i=0
for t in sites:
i+=1
text = t.text
print(text)
isTrue = text.find('188mm.com',0)
if(isTrue != -1):
t.click()
#获取当前窗口的句柄
handles = browser.window_handles
#切换至新打开的标签
browser.switch_to.window(handles[1])
targetSite = browser.find_elements_by_xpath("//a")
# targetSite = random.sample(targetSite,5)
# print(len(targetSite));
clickNum = 0;
for k in range(len(targetSite)):
time.sleep(1)
rand = random.randint(0,len(targetSite))
print(k)
try:
clickNum+=1
browser.find_elements_by_xpath("//a")[rand].click()
except Exception:
clickNum-=1
print("此链接无法访问")
if clickNum == 3:
break
time.sleep(3)
# k.click()
browser.close()
browser.switch_to.window(handles[0])
# browser.close()
return
else:
if i == int(siteCount) :
print("-------------------------")
searchPage.find_element_by_xpath("//div[@id='page']/a[last()]").click()
# print("已点击页" )
time.sleep(2) #防止第二次点击的时候其他元素被遮挡
searchPage = browser.find_element_by_id("page")
browser.find_elements_by_xpath("//div[@id='content_left']/div[@class]/div[@class='f13']/a[1]")
searchLink(searchPage)
searchLink(searchPage)