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

     

  • 相关阅读:
    一个主板上连接两个都有引导的盘
    pytorch查看模型weight与grad
    linux终端窗口字体缩放快捷键
    vim选中多行缩进(python多行缩进)与删除多行前面的空格
    python import 包的路径以及相对路径加载的问题
    pycharm中添加PATH变量
    Atom选中多行操作
    php扩展 swoole的安装与使用
    12121212
    linux系统下清理所有Redis缓存
  • 原文地址:https://www.cnblogs.com/zy900406/p/6089991.html
Copyright © 2011-2022 走看看