簡體   English   中英

無法使用 selenium python 打印 foodpanda 產品鏈接

[英]Unable to print foodpanda product links using selenium python

因為我想從 href 標記中提取鏈接,但它沒有從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
        link = driver.find_elements_by_css_selector(".vendor [href]")[i].text

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

請閱讀代碼,此代碼在我的計算機上運行良好。

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait

driver = webdriver.Chrome()
wait = WebDriverWait(driver, 30)

driver.get('https://www.foodpanda.pk/restaurants/new?lat=24.9414896&lng=67.1676002&vertical=restaurants')

Vendor_list = driver.find_elements_by_xpath("//figure[@class=\"vendor-tile item\"]/ancestor::li")

for vendor in Vendor_list:
    print("-------------------")
    print("Restaurant Name :- " + vendor.find_element_by_xpath(".//span[@class=\"name fn\"]").text)
    print("Badge :- " + vendor.find_element_by_xpath(".//span[@class=\"badge-info\"]").text[:2] +
          vendor.find_element_by_xpath(".//span[@class=\"badge-info\"]/span").text)
    try:
        print("Rating :- " + vendor.find_element_by_xpath(".//span[@class=\"rating\"]").text)
    except:
        print("No Rating Available")

    try:
        print("Muti Tag :- " + vendor.find_element_by_xpath(".//span[@class=\"multi-tag\"]").text)
    except:
        print("No Tag Info")

    print("Vendor URL :- " + vendor.find_element_by_xpath(".//a").get_attribute("href"))

如果它解決了您的問題,那么請將其標記為答案。

那里沒有具有確切 class 名稱vendor的元素。
你應該使用類似//*[contains(@class,'vendor')]//a[@href]
我使用Xpath因為我更喜歡使用它,但您也可以使用類似css_selector

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM