鱼C论坛

 找回密码
 立即注册
查看: 2539|回复: 13

[已解决]selenium问题求助!!

[复制链接]
发表于 2020-10-25 15:56:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from selenium import webdriver


class Douyu(object):
    def __init__(self):
        self.url = 'https://www.douyu.com/directory/all'
        self.driver = webdriver.Chrome(executable_path='D:\chromedriver_win32\chromedriver.exe')

    def run(self):
        # url
        # driver
        # get
        self.driver.get(self.url)
        # parse
        self.parse_data()
        # save
        # next_page

    def parse_data(self):
        room_list = self.driver.find_elements_by_xpath('//*[@id="listAll"]/section[2]/div[2]/ul/li/div')
        # print(room_list)
        # js = 'scrollTo(0,1000)'  # 将滚动条向下滚动
        # 遍历房间列表,从每一个房间结点获取数据
        for room in room_list:
            # title = room.find_element_by_class_name("DyListCover-userName").text
            # self.driver.execute_script(js)  # 执行JS代码
            temp = {'title': room.find_element_by_xpath('./a[1]/div[2]/div[1]/h3').text,
                    'type': room.find_element_by_xpath('./a[1]/div[2]/div[1]/span').text,
                    'owner': room.find_element_by_xpath('./a[1]/div[2]/div[2]/h2/div').text,
                    'number': room.find_element_by_xpath('./a[1]/div[2]/div[2]/span').text}
            print(temp)


if __name__ == '__main__':
    douyu = Douyu()
    douyu.run()


这段代码打印出来的temp会报错,请问应该怎么解决?? RK7JYTK6$UL6HP@NWJCI5GA.png
最佳答案
2020-10-27 12:21:28
def parse_data(self):
        room_list = self.driver.find_elements_by_xpath("//div[@class='layout-Module-container layout-Cover ListContent']")
        for room in room_list:
            roomlist=room.text.split('\n')
            print(roomlist)
报错是由于find_elements_by_xpath后页面元素有变化。你根据之前获取的WebElement的ID去获取会找不到。你这个可以一次获取然后4个一组就能获取到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-25 16:22:34 | 显示全部楼层
好像是没设置等待时间,页面没加载完。加了等待时间加可以了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-25 16:38:14 | 显示全部楼层

回帖奖励 +2 鱼币

鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-25 16:56:06 | 显示全部楼层

回帖奖励 +2 鱼币

你这头像不敢看啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-25 18:00:22 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-25 18:02:16 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-25 18:14:48 | 显示全部楼层

回帖奖励 +2 鱼币

回帖奖励?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-25 18:19:43 | 显示全部楼层

回帖奖励 +2 鱼币

Lwq_Official 发表于 2020-10-25 16:22
好像是没设置等待时间,页面没加载完。加了等待时间加可以了。。。

是已经解决了吗?楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-26 10:20:37 | 显示全部楼层

回帖奖励 +2 鱼币

你这是你现在用的chrome浏览器和你所用的webdriver版本不匹配导致的,重新下一个就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-26 17:07:56 | 显示全部楼层

回帖奖励 +2 鱼币

没用过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-26 21:47:35 | 显示全部楼层

回帖奖励 +2 鱼币

我有点没看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-27 08:14:16 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-27 12:21:28 | 显示全部楼层    本楼为最佳答案   
def parse_data(self):
        room_list = self.driver.find_elements_by_xpath("//div[@class='layout-Module-container layout-Cover ListContent']")
        for room in room_list:
            roomlist=room.text.split('\n')
            print(roomlist)
报错是由于find_elements_by_xpath后页面元素有变化。你根据之前获取的WebElement的ID去获取会找不到。你这个可以一次获取然后4个一组就能获取到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-30 20:39:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 00:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表