selenium python的使用(一)

时间:2024-11-14 21:37:31

下面是一个爬取知网数据的例子,使用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的用法