首页 > 解决方案 > 使用 Selenium python 重复打印店铺名称

问题描述

因为它打印了所有细节,但问题是重复打印 Master Juice 如下图所示,这是我的链接https://www.foodpanda.pk/restaurants/new?lat=24.9414896&lng=67.1676002&vertical=restaurants从我刮的地方

from selenium import webdriver
driver = webdriver.Chrome('F:/chromedriver')
driver.get("https://www.foodpanda.pk/restaurants/new?lat=24.9414896&lng=67.1676002&vertical=restaurants")


# response = scrapy.Selector(text=driver.page_source)
list = driver.find_elements_by_css_selector("ul.vendor-list li")
length = len(driver.find_elements_by_css_selector("ul.vendor-list li"))
for i in range(length):
    try:
        name = driver.find_elements_by_css_selector(".headline .name")[i].text
        time = driver.find_elements_by_css_selector(".badge-info")[i].text.strip()
        rating = driver.find_elements_by_css_selector(".rating")[i].text
        dealtag = driver.find_elements_by_css_selector(".multi-tag")[i].text
    except:
        pass
    print(name,time,rating,dealtag)

在此处输入图像描述

标签: pythonseleniumbeautifulsouppython-requestswebdriver

解决方案


这是因为即使出现错误,它每次都会打印,打印之前存储在您的姓名、时间等变量中的任何内容。try:当你在你的块中移动你的打印语句时尝试它

from selenium import webdriver
driver = webdriver.Chrome('F:/chromedriver')
driver.get("https://www.foodpanda.pk/restaurants/new?lat=24.9414896&lng=67.1676002&vertical=restaurants")


# response = scrapy.Selector(text=driver.page_source)
list = driver.find_elements_by_css_selector("ul.vendor-list li")
length = len(driver.find_elements_by_css_selector("ul.vendor-list li"))
for i in range(length):
    try:
        name = driver.find_elements_by_css_selector(".headline .name")[i].text
        time = driver.find_elements_by_css_selector(".badge-info")[i].text.strip()
        rating = driver.find_elements_by_css_selector(".rating")[i].text
        dealtag = driver.find_elements_by_css_selector(".multi-tag")[i].text

        print(name,time,rating,dealtag)
    except:
        pass
    

推荐阅读