Lwq_Official 发表于 2020-10-25 15:56:56

selenium问题求助!!

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/div/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/div/div/h3').text,
                  'type': room.find_element_by_xpath('./a/div/div/span').text,
                  'owner': room.find_element_by_xpath('./a/div/div/h2/div').text,
                  'number': room.find_element_by_xpath('./a/div/div/span').text}
            print(temp)


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



这段代码打印出来的temp会报错,请问应该怎么解决??

Lwq_Official 发表于 2020-10-25 16:22:34

好像是没设置等待时间,页面没加载完。加了等待时间加可以了。。。

hrp 发表于 2020-10-25 16:38:14

鱼币{:10_278:}

604858912 发表于 2020-10-25 16:56:06

你这头像不敢看啊

鱼的七秒记忆 发表于 2020-10-25 18:00:22

{:10_256:}

鱼七记忆 发表于 2020-10-25 18:02:16

{:10_256:}

疾风怪盗 发表于 2020-10-25 18:14:48

回帖奖励?

一抹心尘 发表于 2020-10-25 18:19:43

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

是已经解决了吗?楼主

一秋秋s 发表于 2020-10-26 10:20:37

你这是你现在用的chrome浏览器和你所用的webdriver版本不匹配导致的,重新下一个就行

心驰神往 发表于 2020-10-26 17:07:56

没用过

象棋爱好者 发表于 2020-10-26 21:47:35

我有点没看懂

975050208@qq.co 发表于 2020-10-27 08:14:16

{:5_108:}

fall_bernana 发表于 2020-10-27 12:21:28

975050208@qq.co 发表于 2020-10-27 08:14


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个一组就能获取到了

Ray-先生 发表于 2020-10-30 20:39:19

{:10_266:}
页: [1]
查看完整版本: selenium问题求助!!