您的位置: 网站首页> selenium爬虫> 当前文章
selenium滚动鼠标实现网页下拉(运行js)
老董-我爱我家房产SEO2020-04-05153围观,148赞
相似文章:
selenium鼠标操作之前的文章已经说过了不少方法,但是如果是为了完成鼠标滚动来实现网页滚动条的下滑的话,直接运行js比较简单。因为js脚本可以控制滚动条的移动,而selenium又可以执行js,两者结合就能完成下拉网页。下面以百度搜索举例:
1 打开百度官网,输入python;
2 点击搜索后,鼠标向右下方随机移动一段距离,然后点击鼠标右键;(从视觉上看光标并没有移动,但是实际上实现了移动,为了证实我们才点击下鼠标右键)
3 网页滚动条下拉一段随机距离;
4 关闭网页
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import time
from selenium.webdriver.common.action_chains import ActionChains
import random
def click_url(kwd):
try:
driver.get('https://www.baidu.com/')
input = WebDriverWait(driver, 30).until(
EC.visibility_of_element_located((By.ID, "kw"))
)
input.click() # 先click后clear,直接send_keys容易丢失字符
input.clear()
for wd in kwd:
time.sleep(0.01)
input.send_keys(wd) # send_keys和click之间间隔时间;一次性输入容易丢失字符
baidu = WebDriverWait(driver, 20).until(
EC.visibility_of_element_located((By.ID, "su"))
)
baidu.click() # 点击搜索
# 等待页面加载完
next_page = WebDriverWait(driver, 20).until(
EC.visibility_of_element_located((By.CLASS_NAME,"n"))
)
# 鼠标随机移动距离
width,height = random.randint(30,50),random.randint(450,455)
# 鼠标右键点击-证实鼠标确实移动了
ActionChains(driver).move_to_element_with_offset(baidu, width, height).context_click().perform()
# 滚动条滚动距离
rand_num = random.random()
js = 'window.scrollBy(0,{0} *{1})'.format('document.body.scrollHeight',rand_num)
driver.execute_script(js)
except Exception as e:
print('异常',e)
time.sleep(10)
else:
print('点击成功')
finally:
time.sleep(6)
driver.quit()
if __name__ == "__main__":
option = Options()
option.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" # 安装的位置
driver = webdriver.Chrome(options=option)
driver.maximize_window()
click_url('python')
运行以上代码,就可以看到响应的效果。
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
selenium滚动鼠标实现网页下拉(运行js)文章写得不错,值得赞赏
站点信息
- 网站程序:Laravel
- 客服微信:a772483200