binggo6656 2022-01-20 15:43 采纳率: 71.4%
浏览 31
已结题

这段selenium爬虫程序问题出在哪里

问题遇到的现象和发生背景

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

问题相关代码,请勿粘贴截图
import time
from selenium import webdriver
import pandas as pd
driver = webdriver.Edge("C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe")
driver.get('https://movie.douban.com/top250')
driver.implicitly_wait(10)
datas=[]

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

    for eachList in allLists:
        #第一页数据正常,爬取第二页时提示没有取到元素
        rank = eachList.find_element_by_xpath('./div[@class="item"]/div[@class="pic"]/em').text
        title = eachList.find_element_by_xpath('./div/div[2]/div[1]/a').text
        rating = eachList.find_element_by_xpath('./div/div[2]/div[2]/div/span[2]').text
        intro = eachList.find_element_by_xpath('./div/div[2]/div[2]/p[2]/span').text
        NumberofPeople  = eachList.find_element_by_xpath('./div/div[2]/div[2]/div/span[4]').text
        # print(rank)
        datas.append({
            '排名':rank,
            '电影名称':title,
            '评分':rating,
            '介绍':intro,
            '评价人数':NumberofPeople
        })
        if driver.find_element_by_xpath('//*[@id="content"]/div/div[1]/div[2]/span[3]/a'):
             nextPage = driver.find_element_by_xpath('//*[@id="content"]/div/div[1]/div[2]/span[3]/a')
             nextPage.click()
             time.sleep(2)
        else:
            break


df = pd.DataFrame(datas)
df.to_excel('selenium豆瓣top250.xlsx',index = False)

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

导出所有数据到excel表格

  • 写回答

1条回答 默认 最新

  • 陈年椰子 2022-01-20 15:46
    关注

    大概看了逻辑, 感觉是 红框部分的层次错了。全部往左移动4格
    红框部分是爬完1页(for 语句)后, 点击下一页吧?

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月28日
  • 已采纳回答 1月20日
  • 创建了问题 1月20日

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R