【发布时间】:2021-07-04 07:08:02
【问题描述】:
所有详细信息都已打印,但问题是我使用了许多 for 循环。如何克服这个问题并处理for循环?我试图摆脱许多for 循环,但我失败了。
这是我的链接:https://www.foodpanda.pk/restaurants/new?lat=24.9414896&lng=67.1676002&vertical=restaurants
请修改这个。它工作正常。
import time
import requests
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np
from selenium import webdriver
url= "https://www.foodpanda.pk/restaurants/new?lat=24.9414896&lng=67.1676002&vertical=restaurants"
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ['enable-automation'])
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument(
"user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36")
options.add_argument("--remote-debugging-port=9222")
driver = webdriver.Chrome('F:/chromedriver',options=options)
options.add_experimental_option("excludeSwitches", ['enable-automation'])
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument(
"user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36")
options.add_argument("--remote-debugging-port=9222")
driver.get(url)
panda =[]
[print(name.text) for name in driver.find_elements_by_css_selector(
".vendor-list .headline .name")]
[print(expectetime.text) for expectetime in driver.find_elements_by_css_selector(
".badge-info")]
try:
[print(dealtag.text) for dealtag in driver.find_elements_by_css_selector(
".tag-container .multi-tag ")]
except:
dealtag=''
try:
[print(rating.text) for rating in driver.find_elements_by_css_selector(
".rating")]
except:
rating=''
foodpanda={
'Shop_name':name,
'delivery_time': expectetime,
'Deal_tag':dealtag,
'Rating':rating
}
panda.append(foodpanda)
df = pd.DataFrame(panda)
print(df.head())
df.to_csv('foodpanda.csv')
【问题讨论】:
标签: python selenium beautifulsoup python-requests webdriver