51Testing软件测试论坛
标题:
这段selenium爬虫程序问题出在哪里
[打印本页]
作者:
测试积点老人
时间:
2022-1-21 09:59
标题:
这段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表格
作者:
qqq911
时间:
2022-1-24 10:15
看下换页以后地址换了没
作者:
jingzizx
时间:
2022-1-24 15:33
确认是不是到了第二页
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2