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的用法

     

  • 相关阅读:
    个人作业-Alpha项目测试
    第三次作业-结对编程
    第二次作业
    第一次阅读作业
    canal同步mysql数据至es5.5.0
    工作一周年小结
    Java集合操作 遍历list并转map
    网易秋招校招编程题
    堆外内存总结
    网易秋招内推编程题题解
  • 原文地址:https://www.cnblogs.com/zy900406/p/6089991.html
Copyright © 2011-2022 走看看