最近优化了很多, 可以随机点击内页并且切换浏览器标签关闭窗口
本准备写个最完美的再发出来好留存,但是感觉这个代码要搁置一段时间了,因为想到了更好的东西,更能赚钱的东西。
import timeimport randomfrom selenium import webdriverbrowser = webdriver.Chrome()browser.get('/')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=0for t in sites:i+=1text = t.textprint(text)isTrue = text.find('',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+=1browser.find_elements_by_xpath("//a")[rand].click()except Exception:clickNum-=1print("此链接无法访问")if clickNum == 3:breaktime.sleep(3)# k.click()browser.close()browser.switch_to.window(handles[0])# browser.close()returnelse: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)
如果觉得《python selenium模拟百度搜索关键词点击目标站内页(2)》对你有帮助,请点赞、收藏,并留下你的观点哦!