• selenium与phantomjs简单结合


    selenium工具安装

    Windows安装
    pip install selenium

    Linux安装
    apt-get install selenium

    查看selenium支持的浏览器
    from selenium import webdriver
    help(webdriver)


    无头浏览器phantomJs安装
    下载地址:http://phantomjs.org/download.html
    下载完成后将其exe文件复制到python的安装目录中即可

    将webdriver帮助文档输出到文件

    from selenium import webdriver
    import sys
    browser = webdriver.PhantomJS()
    out = sys.stdout
    sys.stdout = open('browserHelp.txt','w')
    help(browser)
    sys.stdout.close()
    sys.stdout = out
    browser.quit()
    exit()


    示例:百度搜索
    # 打开网站主页面
    from selenium import webdriver
    browser = webdriver.PhantomJS()
    browser.get("https://www.baidu.com")
    # 智能等待,最长等待10秒
    browser.implicitly_wait(10)


    # 获取搜索结果,定位有效数据的位置或表单框架
    find_element(self,by='id',value=None) # 取第一个符合条件的值
    find_elements(self,by='id',value=None) # 取所有符合条件的值
    这两个函数可以替代下面所有函数,如find_element(by='id',value='abc') == find_element_by_id("abc")

    find_element_by_class_name(self,name)
    find_element_by_css_selector(self,css_selector)
    find_element_by_id(self,id)
    find_element_by_link_text(self,link_text)
    find_element_by_name(self,name)
    find_element_by_partial_link_text(self,link_text)
    find_element_by_tag_name(self,name)
    find_element_by_xpath(self,xpath)


    # 查找文本框
    textElement = browser.find_element_by_class_name("s_ipt")
    textElement = browser.find_element_by_id("kw")

    textElement.clear()
    textElement.send_keys("python selenium")

    # 查找提交按扭
    submitElement = browser.find_element_by_class_name("btn self-btn bg s_btn")
    submitElement = browser.find_element_by_id("su")
    submitElement.click()
    print browser.title


    # 定位有效数据
    resultElements = browser.find_elements_by_class_name("c-tools")
    len(resultElements)

    # 一般来说定位结果用by_xpath或by_css比较方便
    # 从位置中获取有效数据
    element.text
    element.get_attribute(name)

    value = resultElements[0].get_attribute("data-tools")
    valueDic = eval(value)

    print valueDic.get("title").decode("utf8")
    print valueDic.get("url")

  • 相关阅读:
    C#里有个东东叫继承
    ReferenceTable overflow 问题汇总
    meego 启动qemu模拟器出现no matching configs found
    win7系统远程桌面链接linux系统
    如何用Doxgen制作chm格式文档
    win7系统下光盘安装linux ubuntu10.04.4LTS双系统攻略
    Meego SDK 安装过程中的出现问题
    win7系统上使用putty登陆ubuntu攻略
    undefined reference to “functionA”
    ubuntu中meego sdk安装target和runtime无法下载问题
  • 原文地址:https://www.cnblogs.com/niansi/p/6720903.html
Copyright © 2020-2023  润新知