zoukankan      html  css  js  c++  java
  • 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")

  • 相关阅读:
    $Noip2011/Luogu1311$ 选择客栈
    $Noip2013/Luogu1970$ 花匠 $dp$+思维
    $CF1063B Labyrinth$ $01$最短路/$01BFS$
    $UVA10559 Blocks $区间$dp$
    $SCOI2009 windy$数 数位$dp$
    $cometoj#4 D $求和 不是$dp$
    Manacher算法总结
    题解 P1537 【弹珠】
    题解 P4609 【[FJOI2016]建筑师】
    字符串专题随笔
  • 原文地址:https://www.cnblogs.com/niansi/p/6720903.html
Copyright © 2011-2022 走看看