51Testing软件测试论坛

标题: 这段selenium爬虫程序问题出在哪里 [打印本页]

作者: 测试积点老人    时间: 2022-1-21 09:59
标题: 这段selenium爬虫程序问题出在哪里
问题遇到的现象和发生背景

爬到第二页就提示没有获得元素,第一页都是可以获取的,是怎么回事呢

  1. import time
  2. from selenium import webdriver
  3. import pandas as pd
  4. driver = webdriver.Edge("C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe")
  5. driver.get('https://movie.douban.com/top250')
  6. driver.implicitly_wait(10)
  7. datas=[]

  8. while True:
  9.     #获取所有li
  10.     allLists = driver.find_elements_by_xpath('//*[@id="content"]/div[@class="grid-16-8 clearfix"]/div[@class="article"]/ol[@class="grid_view"]/li')

  11.     for eachList in allLists:
  12.         #第一页数据正常,爬取第二页时提示没有取到元素
  13.         rank = eachList.find_element_by_xpath('./div[@class="item"]/div[@class="pic"]/em').text
  14.         title = eachList.find_element_by_xpath('./div/div[2]/div[1]/a').text
  15.         rating = eachList.find_element_by_xpath('./div/div[2]/div[2]/div/span[2]').text
  16.         intro = eachList.find_element_by_xpath('./div/div[2]/div[2]/p[2]/span').text
  17.         NumberofPeople  = eachList.find_element_by_xpath('./div/div[2]/div[2]/div/span[4]').text
  18.         # print(rank)
  19.         datas.append({
  20.             '排名':rank,
  21.             '电影名称':title,
  22.             '评分':rating,
  23.             '介绍':intro,
  24.             '评价人数':NumberofPeople
  25.         })
  26.         if driver.find_element_by_xpath('//*[@id="content"]/div/div[1]/div[2]/span[3]/a'):
  27.              nextPage = driver.find_element_by_xpath('//*[@id="content"]/div/div[1]/div[2]/span[3]/a')
  28.              nextPage.click()
  29.              time.sleep(2)
  30.         else:
  31.             break


  32. df = pd.DataFrame(datas)
  33. df.to_excel('selenium豆瓣top250.xlsx',index = False)
复制代码
运行结果及报错内容我的解答思路和尝试过的方法我想要达到的结果

导出所有数据到excel表格



作者: qqq911    时间: 2022-1-24 10:15
看下换页以后地址换了没
作者: jingzizx    时间: 2022-1-24 15:33
确认是不是到了第二页




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2