zoukankan      html  css  js  c++  java
  • selenium python的使用(一)

    下面是一个爬取知网数据的例子,使用selenium 用python爬取数据

    1.创建对象,打开指定地址,在休眠的20秒内输入搜索项

    driver= webdriver.Chrome()

    driver.get("http://epub.cnki.net/kns/brief/result.aspx?dbprefix=scdb&action=scdbsearch&db_opt=SCDB")

    time.sleep(20)
    2.点击搜索按钮,休眠5秒,等待渲染结束
    driver.find_element_by_id('btnSearch').click()
    time.sleep(5)

    3.根据选择搜索项,找到key并指定地址(此处和业务有关)

    key=driver.find_element_by_id('curdbcode').get_attribute('value').upper()
    url='http://epub.cnki.net/kns/brief/brief.aspx?pagename=ASP.brief_result_aspx&dbPrefix=[KEY]&ConfigFile=[KEY].xml&recordsperpage=50'.replace('[KEY]', key)
    driver.get(url)

    #nextPage()方法,是否有下一页,控制翻页操作

    nextPage(driver)

    def nextPage(driver):

    #当前页面的url

    urll=driver.current_url
    html=driver.page_source.encode('utf8')
    if 'TitleLeftCell' in html:

      #根据class name查找

      linkss=driver.find_element_by_class_name('TitleLeftCell')
      if linkss:

        #根据节点name查找
        for link in linkss.find_elements_by_tag_name("a"):
          titlevalue=link.text
          if titlevalue=='下一页':

            #模拟点击操作
            link.click()
            time.sleep(5)
            nextPage(driver)
            break

    总结:通过一个实际的项目,学习selenium,selenium操作浏览器很方便,一些find_element_XX_XX_XX的方法可以快速定位,下篇会继续写一些有关selenium的用法

     

  • 相关阅读:
    c# 泛型委托
    c# 用户自定义转换
    c# 溢出上下文检测
    c# 接口相同方法申明使用
    c# 事件的订阅发布Demo
    c# 匿名方法几种表现形式
    c# 数组协变
    c# 交错数组
    C# 位运算详解
    ABAP 7.4 新语法-内嵌生命和内表操作(转)
  • 原文地址:https://www.cnblogs.com/zy900406/p/6089991.html
Copyright © 2011-2022 走看看