鼠标悬停

import random
from time import sleep
from selenium import webdriver

from lxml import etree
from selenium.webdriver import ActionChains

url = []
# 初始页面地址
urls = 'www.baidu.com'
# 使用谷歌浏览器驱动
driver = webdriver.Chrome()
# 谷歌浏览器访问页面
driver.get(urls)
# 翻页
for i in range(1, 3):
# 从第一页开始,没别的意思,强迫症
print(f'*****************************第{i}页***************************')
# 每次休眠2到3秒,防止被检测
sleep(random.randint(2, 3))
# 每次向下滑动2200像素
# window.scrollBy(0,-2200)符号代表向上滑动,一般用于页面加载不出来的情况
driver.execute_script('window.scrollBy(0,2200)')
# 需要悬停的元素
url3 = f'//div[{i}]/div/div/div/div/div/div/div/div/div/div[2]/div/div[2]/div/div[2]/div/div[2]/span/span/span[2]/span/a'
# 悬停之后出现的元素
url4 = f'//div[{i}]/div/div/div/div/div/div/div/div/div/div[2]/div/div[2]/div/div[2]/div/div[2]/span/span/span[2]/span/a//@href'
# 悬停指挥出现的内容
url5 = f'//div[{i}]/div/div/div/div/div/div/div/div/div/div[2]/div/div[2]/div/div[2]/div/div[2]/span/span/span[2]/span/a//text()'
# 悬浮前的源页源码
html = etree.HTML(driver.page_source)
# 获取悬浮的元素内容
ir_time = html.xpath(url5)
# # 元素内容
# while '=' in ir_time:
# ir_time.remove('=')
# times.append(ir_time)
# 定位需要悬浮的元素
url3 = driver.find_element_by_xpath(url3)

sleep(random.randint(3, 5))
# 悬停在特定元素上
ActionChains(driver).move_to_element(url3).perform()
# 完整版页面源码
html = etree.HTML(driver.page_source)
# 需要的内容
url3 = html.xpath(url4)
# 把列表转换为字符串
url3 = url3[0]
# 把所有元素放在一起
url.append(url3)
posted @ 2021-10-20 15:34  布都御魂  阅读(61)  评论(0编辑  收藏  举报