自动化浏览网页

为了方(tou)便(lan)公司UI在站酷网查找素材,写了一个小脚本。
实现功能:

  • 控制滚动条从上到下,方便浏览每一页内容
  • 自动翻页

有时,我们需要控制页面滚动条上的滚动条,但滚动条并非页面上的元素,这个时候就需要借助js中识别滚动条位置的代码来进行操作。

<body   onload= "document.body.scrollTop=0 ">
<body   onload= "document.body.scrollTop=100000 ">

如果有内嵌窗口,通过firebug工具可以定位到内嵌入窗口的元素id,可以通过下面的代码实现。

js="var q=document.getElementById('id').scrollTop=10000"
driver.execute_script(js)

注:没有进行验证,但是看起来应该没有问题。

下面是针对站酷网UI分类实现的简陋的自动化脚本,仅供参考:

#!/usr/bin/env python
# encoding : utf-8
# @author : XZR
# @time : 2017.12.04 10:35

import time
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

# 打开浏览器
browser = webdriver.Chrome()

# 滚动滚动条
def action():
    for i in range(0,2000,500):
        # 调用js方法,i用来控制滚动条滚动大小
        js = 'var q=document.documentElement.scrollTop=%d' % i
        browser.execute_script(js)
        time.sleep(2)

# 翻页
def next():
    # 确保下一页标签被加载出来,感觉有点鸡肋
    wait = WebDriverWait(browser, 10)
    laypage = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#laypage_0 > a.laypage_next')))
    laypage.click()

def main():
    # 访问页面
    browser.get('http://www.zcool.com.cn/discover/17!0!0!0!0!!!!2!-1!1')
    # 将浏览器最大化显示
    browser.maximize_window()
    time.sleep(2)
    for i in range(100):
        action()
        next()

if __name__ == '__main__':
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值