使用硒抓取网站的价格

时间:2021-03-16 23:51:57

标签: python selenium

我删了旧帖子,因为它不够清楚。

我正在使用 selenium 抓取网站,我面临的问题是使用

抓取该领域时
driver.get('****')
driver.find_element_by_id('fb_submit').click()
driver.find_element_by_id('email').send_keys('')
driver.find_element_by_id('password').send_keys('')
driver.find_element_by_id('btn-login').click()
driver.get('****')
driver.find_elements_by_xpath(//[@class='price']) 

是该字段首先填充检索,直到数据填充到页面中。因此,它检索带有 ["retrieving" 而不是定价] 的列表 我该如何解决这种情况,我尝试使用等待驱动器,但它已被填充。\

                while tt:
                    elem =driver.find_elements_by_xpath('.//td[@data-title="Availability"]')
                    elem =[d.text for d in elem]
                    Availability = sele.xpath('.//td[@data-title="Availability"]/text()').extract()

                    # elemList =[d for d in elem]
                    for i in elem:

                        if "retreiving" not in i.lower() or "Retreiving" not in i or i != "Retreiving" :
                            tt = False
                            print(i,tt)
                        else:
                            tt =True
                            print("else" ,i, tt)
                    time.sleep(0.5)

更新:

这是我尝试过但仍然无法正常工作的方法...

第二次更新:


   WebDriverWait(driver, 10).until_not(EC.text_to_be_present_in_element((By.XPATH, ".//td[@data-title='Availability']"), "Retreiving"))

1 个答案:

答案 0 :(得分:0)

如果包含价格的元素与除了它包含的文本之外的所有内容都表示“检索”的元素相同(即该元素在获取价格之前和之后只有 price 类),您可以写一些逻辑来等待元素包含你想要的数据吗?

类似的东西

while True:
    element_text = driver.find_elements_by_xpath(//[@class='price']).text
    if "retreiving" not in element_text:
        break
    time.sleep(1)

# element_text might contain the prices at this point
print(element_text)