精华内容
下载资源
问答
  • Python selenium模块

    2019-10-11 13:51:04
    selenium库啥是seleniumselenium在爬虫中的应用selenium库的安装driver下载地址元素定位方法浏览器交互方法实操小例子 啥是selenium selenium是用于Web应用程序自动化测试工具,就像真正的用户在操作一样浏览器一样...

    啥是selenium

    selenium是用于Web应用程序自动化测试工具,就像真正的用户在操作一样浏览器一样,驱动浏览器执行特定的动作,如点击、下拉、输入文本等操作。

    selenium在爬虫中的应用

    1. 在获取动态页面中的数据,有一些动态的数据在获取源码中并没有显示这一类数据,就可以使用selenium模拟浏览器行为,获取这类数据
    2. 可以用于模拟登陆,使用selenium模拟用户登陆行为,保存登陆后的cookie,可保持登陆状态。

    selenium库的安装

    pip install selenium

    driver下载地址

    要使用selenium模拟浏览器的行为,需要下载其驱动,并添加到环境变量当中

    元素定位方法

    • Python selenium中8种定位方法

      find_ element by_id()
      find element by_name()
      find_ element by_class_name()
      find_elementby_tag_name()
      find_ element_by_link_text()
      find_ element by_partial_link_text()
      find_ elementby_xpath()
      find_element by_css_selector()

    浏览器交互方法

    • 控制浏览器

      • 浏览器最大化窗口
        maximize_window()
      • 设置窗口大小(宽,高)
        set_window_size(800,900)
      • 控制浏览器前进、后退、刷新
        back()、forwar()、refresh()
    • 控制鼠标

      • 执行ActionChains中存储的行为
        perform()
      • 点击
        click()
      • 右击
        context_click()
      • 双击
        double_click()
      • 拖动
        drag_and_drop()
      • 鼠标悬停
        move_to_element()

    实操小例子

    打开Chrome浏览器打开百度输入python点击百度一下进行搜索退出浏览器

    # 导包
    import time
    from selenium import webdriver
    
    # 打开谷歌浏览器
    browser = webdriver.Chrome()
    # 浏览器最大化
    browser.maximize_window()
    
    # 打开百度
    browser.get('https://www.baidu.com')
    time.sleep(3)
    
    # 通过id字段查找到百度搜索框
    # <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
    search = browser.find_element_by_id('kw')
    
    # # 可以自定义搜索内容
    # text = input('请输入要搜索的信息:')
    
    # 向搜索框输入内容
    # search.send_keys(text) 
    search.send_keys('python')
    
    # 通过id字段查找到搜索按钮
    # <input type="submit" value="百度一下" id="su" class="btn self-btn bg s_btn">
    button = browser.find_element_by_id('su')
    # 暂停一下,免得太快你看不见
    time.sleep(3)
    
    # 点击按钮进行搜索
    button.click()
    time.sleep(3)
    
    # 退出浏览器
    browser.quit()
    
    展开全文
  • 主要介绍了python selenium模块实现定位过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了Python Selenium模块安装使用教程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • python selenium模块 使用浏览器驱动自动打开播放B站视频,刷取B站视频的播放量,简单粗暴易懂。只需把自己的B站视频网址复制进去即刻。
  • 我的机器人 带有PythonSelenium模块的Twitter和Github机器人
  • 1.1selenium模块下载命令 pip install selenium 1.2驱动下载 下载浏览器对应版本的驱动,一般下载最新版本就好了,下面是chorme和firefox的驱动,下载完把可执行的exe文件放到python环境里,否则在调用时要手动添加...
  • Python selenium模块模拟微信投票

    千次阅读 2019-06-14 10:31:04
    Python selenium模块模拟微信投票 以为这个链接里面都是选择题和填空题,所以代码会比较简单 直接上代码: import random import xlrd from selenium import webdriver from selenium.webdriver.common.keys import ...

    Python selenium模块模拟微信投票

    因为这个链接里面都是选择题和填空题,所以代码会比较简单

    直接上代码:

    import random

    import xlrd
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time

    def vote(username, work_num, iphone_no, list1, list2, list3, list4, driver):
    # driver = webdriver.Firefox()
    #
    # # if not count:
    # driver.get(“https://*******/Survey2/?id=61”)
    stop_time = 0.1
    stop_time1 = 2
    refresh_time = 1
    time.sleep(stop_time1)
    # 姓名
    # driver.find_element_by_id(“userName”).send_keys(“张伟”)
    driver.find_element_by_id(‘userName’).send_keys("{}".format(username))
    time.sleep(stop_time)
    # 工号
    driver.find_element_by_id(“workerNum”).send_keys("{}".format(work_num))
    time.sleep(stop_time)
    # 手机号
    driver.find_element_by_id(“phoneNum”).send_keys("{}".format(iphone_no))
    time.sleep(stop_time)

    # 选题1
    driver.find_element_by_xpath('//input[@value="1" and @name="1558937665656"]').click()
    time.sleep(stop_time)
    # 选题2
    driver.find_element_by_xpath('//input[@value="1" and @name="1558945701089"]').click()
    time.sleep(stop_time)
    
    # 选题13
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477711"]'.format(list3[0])).click()
    time.sleep(stop_time)
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477711"]'.format(list3[1])).click()
    time.sleep(stop_time)
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477711"]'.format(list3[2])).click()
    # time.sleep(1)
    # driver.find_element_by_xpath('//input[@value="3" and @name="1558958477711"]').click()
    # time.sleep(1)
    # driver.find_element_by_xpath('//input[@value="4" and @name="1558958477711"]').click()
    # time.sleep(1)
    # driver.find_element_by_xpath('//input[@value="5" and @name="1558958477711"]').click()
    # time.sleep(1)
    # driver.find_element_by_xpath('//input[@value="6" and @name="1558958477711"]').click()
    
    # 选题14
    driver.find_element_by_xpath('//input[@value="1" and @name="1558958477713"]').click()
    time.sleep(stop_time)
    
    # 选题15
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477714"]'.format(list4[0])).click()
    # time.sleep(stop_time)
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477714"]'.format(list4[1])).click()
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477714"]'.format(list4[2])).click()
    time.sleep(stop_time)
    
    # 选题16
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477715"]'.format(list4[0])).click()
    # time.sleep(stop_time)
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477715"]'.format(list4[1])).click()
    # time.sleep(stop_time)
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477715"]'.format(list4[2])).click()
    time.sleep(stop_time)
    
    # 选题17
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477716"]'.format(list4[0])).click()
    # time.sleep(stop_time)
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477716"]'.format(list4[1])).click()
    # time.sleep(stop_time)
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477716"]'.format(list4[2])).click()
    # time.sleep(stop_time)
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477716"]'.format(list4[3])).click()
    time.sleep(stop_time)
    
    # 选题18
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477717"]'.format(list1[0])).click()
    time.sleep(stop_time)
    
    # 选题19
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477718"]'.format(list1[0])).click()
    time.sleep(stop_time)
    
    # 选题20
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477719"]'.format(list1[0])).click()
    # time.sleep(stop_time)
    
    # 选题21
    driver.find_element_by_xpath('//input[@value="{}" and @name="1558958477720"]'.format(list1[0])).click()
    time.sleep(stop_time)
    
    # 选题22
    driver.find_element_by_xpath('//input[@value="3" and @name="1558958477721"]').click()
    time.sleep(stop_time)
    
    # 选题23
    driver.find_element_by_xpath('//input[@value="0" and @name="1558958477722"]'.format(list1[0])).click()
    time.sleep(stop_time)
    
    # 填空题24
    # driver.find_element_by_class_name("fill").send_keys("覆盖刀具这个生命周期")
    # driver.find_element_by_xpath('//div[@index="24" and @class="fill-box" and @class="fill"]').send_keys("覆盖刀具这个生命周期")
    # driver.find_element_by_xpath('//div[@index="24"]/div[@class="fill-box"]/textarea').send_keys("没有")
    # time.sleep(stop_time)
    
    # 选题25
    driver.find_element_by_xpath('//input[@value="1" and @name="1558958477724"]').click()
    time.sleep(stop_time)
    
    # 填空题26
    # driver.find_element_by_xpath('//div[@index="26"]/div[@class="fill-box"]/textarea').send_keys()
    time.sleep(stop_time)
    #
    # 填空题27
    # driver.find_element_by_xpath('//div[@index="27"]/div[@class="fill-box"]/textarea').send_keys("无")
    # time.sleep(stop_time)
    #
    # # 填空题28
    # driver.find_element_by_xpath('//div[@index="28"]/div[@class="fill-box"]/textarea').send_keys("无")
    # time.sleep(stop_time)
    #
    # # 填空题29
    # driver.find_element_by_xpath('//div[@index="29"]/div[@class="fill-box"]/textarea').send_keys("无")
    # time.sleep(stop_time)
    
    # 模拟点击登录
    driver.find_element_by_xpath("//span[@class='qsbtn submit']").click()
    time.sleep(stop_time)
    
    # 等待3秒
    time.sleep(refresh_time)
    
    # 生成登陆后快照
    driver.save_screenshot(u"vote.png")
    
    # driver.back()
    #
    # driver.forward()
    #
    driver.refresh()
    # driver.quit()
    

    def getUserMsg():
    filename = “ST RENYUAN.xlsx”
    # 读取数据
    data = xlrd.open_workbook(filename)
    # 获取sheet的数量
    # page =len(data.sheets())
    # 获取第一张表
    table1 = data.sheets()[0]
    # 获取总行数
    # nrows = table1.nrows
    # 获取总列数
    # ncols = table1.ncols
    # print(nrows, ncols)
    # print(page)

    for i in range(200, 210):
        # print(table1.row_values(i)[1])
        yield table1.row_values(i)[1], table1.row_values(i)[2]
    

    def getRandomData(list_, n):
    return random.sample(list_, n)

    if name == “main”:
    a = getUserMsg()
    list1 = [1, 2]

    # 选项为4个的选题
    list2 = [1, 2, 3]
    
    # 选项为5个的选题
    list3 = [1, 2, 3, 4, 5]
    
    # 选项为大于等于7个的选题
    list4 = [2, 3, 4, 5, 6, 7]
    
    # 生成电话号码
    head = ["187", "159", "150", "137"]
    list5 = ['0','1','2','3','4','5','6','7','8','9']
    
    users = getUserMsg()
    
    count = 0
    driver = webdriver.Firefox()
    
    # if not count:
    driver.get("https://iedu.foxconn.com/Survey2/?id=61")
    for user in users:
        iphone_no = getRandomData(head,1)+getRandomData(list5,8)
        iphone_no_ = ''.join(iphone_no)
        list1_ = getRandomData(list1,1)
        list2_ = getRandomData(list2, 2)
        list3_ = getRandomData(list2, 3)
        list4_ = getRandomData(list4, 4)
        count +=1
    
        vote(user[1], user[0], iphone_no_, list1_, list2_, list3_, list4_, driver)
    
    
    driver.quit()
    

    刚学Python爬虫,希望大家多给意见,欢迎加QQ2954538230一起讨论

    展开全文
  • python开发工具pycharm的Terminal模块下,输入下载命令pip install selenium即可下载selenium模块 2.## 下载浏览器驱动 这里我是用的是chrome浏览器,所以用chrome浏览器来举例。 根据对应浏览器的驱动地址取...

    1.## selenium模块的下载

    在python开发工具pycharm的Terminal模块下,输入下载命令pip install selenium即可下载selenium模块
    在python开发工具pycharm的Terminal模块下,输入下载命令pip install selenium即可下载selenium模块
    2.## 下载浏览器驱动
    这里我是用的是chrome浏览器,所以用chrome浏览器来举例。
    在这里插入图片描述
    根据对应浏览器的驱动地址取下载相应的浏览器驱动,这里一定要注意下载的驱动版本需对应你打浏览器版本,不知道浏览器版本的在地址栏输入
    Chrome://version
    在这里插入图片描述
    第一行就是你当前使用的浏览器版本,另外不管是windows环境还是mac环境都需要配置驱动的环境变量,这里以mac举例,按住command+shift+G即可调出搜索窗口,用于搜索mac隐藏的目录。把解压后的驱动文件放入以下目录即可
    在这里插入图片描述
    至此,使用selenium模块的准备工作已完成。
    在这里插入图片描述
    运行代码就可以自动打开浏览器并访问百度首页。这只是selenium库的简单使用,别的功能大家感兴趣的可自行研究。

    谢谢观看。

    展开全文
  • python selenium模块使用出错,这个怎么改 因为不同版本更新不同步问题,浏览器都要另外下一个驱动。 转载于:https://www.cnblogs.com/wenbo4399/p/8670265.html

    python selenium模块使用出错,这个怎么改

    因为不同版本更新不同步问题,浏览器都要另外下一个驱动。

    转载于:https://www.cnblogs.com/wenbo4399/p/8670265.html

    展开全文
  • python selenium模块学习

    2017-11-16 18:14:17
    python的自动化模块selenium 我用的是Google 的浏览器Chrome,当然首先你得安装好seleniumpip install selenium安装之后还需要安装Chrome的驱动:...
  • 1.通过pip3 install selenium安装seleniumpython模块; pip3 install selenium 2.在https://github.com/mozilla/geckodriver/releases安装geckodriver(Firefox的浏览器驱动); 3.下载Firefox浏览器的压缩包; ...
  • 一、selenium元素定位技巧 ...python selenium中对应8种方法 id find_element_by_id() name find_element_by_name() class_name find_element_by_class_name() tag_name find_element_by_tag_name() ...
  • #google_search ##作用:利用python selenium模块来爬取谷歌搜索结果,在源代码的基础上做了些修改 ##相关文件说明: google-web-search.py​​:从Google抓取某个关键字的所有结果,以“ [debug]标题”;链接”...
  • 什么是selenium库 》Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中 》像真正的用户在操作一样,驱动浏览器执行特定的动作,如点击、下拉等操作 selenium库支持的浏览器有哪些 》...
  • Python selenium模块报错解决

    千次阅读 2019-01-22 22:19:23
    在使用selenium的webdriver示例化Firefox和Chrome对象时,发现如下报错。 如上图,实例Firefox对象,报错:selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited ...
  • Python里安装了selenium模块,可是在调用该模块时,调用不了webdriver这个方法,报错结果如图,文件名也没有纯在和模块同名的原因,求大神指点!!![img=...
  • 之前安装了一个chromedriver运行之后,驱动版本和浏览器不对应,于是重新下了一个再次安装上去,环境变量什么的都配置好了。再一次运行,这次出现了这样的状况。求大神帮助。 ![图片说明]...
  • 目录 报错特征 解决 Windows 系统 ubuntu16.04 系统 Mac OS 系统 检验 geckodriver 是否安装成功 报错特征 // 使用pip安装模块 pip install selenium...
  • pip install selenium 或者到https://pypi.python.org/pypi/selenium 下载setup安装包,之后进入目录后运行python setup.py install 官方文档 官方文档地址:...
  • 有些时候需要用到driver.find_elements_by_css_selector 这段代码来定位一些量的具体位置,有的时候可以直接在检查页面copy selector复制之后粘贴到代码后面就行了。但有的时候就需要在检查页面看class属性之类的,...
  • from selenium import webdriver dr = webdriver.Firefox() url = 'https://www.baidu.com' dr.get(url) #找出搜索框并向搜索框发出内容 el = dr.find_element_by_id('kw') el.send_keys('selenium') #找到...
  • 在使用unittest创建基于python的selenimu的测试脚本时 #coding:utf-8 import unittest from selenium import webdriver class SearchTest(unittest.TestCase): def setUp(self): #create a new Firefox ...
  • 在使用unittest创建基于pythonselenium的测试脚本时#coding:utf-8 import unittest from selenium import webdriver class SearchTest(unittest.TestCase): def setUp(self): #create a new Firefex session ....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,211
精华内容 7,684
关键字:

python的selenium模块

python 订阅