python鼠标移动到网页上、获取网页信息_selenium滚动鼠标实现网页下拉(运行js)

相似文章:

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')

运行以上代码,就可以看到响应的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值