• 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")

  • 相关阅读:
    squid代理缓存服务
    部署网络存储ISCSI
    电子邮局系统
    使用DHCP动态管理主机地址
    vsftp -samba-autofs
    python初学 | 循环for while
    python初学 | 条件语句if
    python初学 | set
    python初学 | 字典dictionary
    python初学 | 元组tuple
  • 原文地址:https://www.cnblogs.com/niansi/p/6720903.html
Copyright © 2020-2023  润新知