Мне нужно взять цены на рейсы с одного сайта, но у меня есть некоторые проблемы с фреймом.
import pandas as pd
import io
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
city1 = ['Belém', 'Belo Horizonte', 'Campo Grande', 'Curitiba', 'Brasília', 'Fortaleza', 'Goiânia', 'Porto Alegre']
city1cod = ['BEL.', 'CNF.', 'CGR.', 'CWB.', 'BSB.', 'FOR.', 'GYN.', 'POA.']
city2 = ['Rio de Janeiro', 'Florianópolis', 'Curitiba', 'São Paulo', 'Salvador', 'Natal', 'Goiânia', 'Fortaleza']
city2cod = ['/m/06gmr.', 'FLN.', 'CWB.', '/m/022pfm.', 'SSA.', 'NAT.', 'GYN.', 'FOR.']
date = ('2019-07-20*', '2019-07-28')
urls = []
for c1 in city1cod:
for c2 in city2cod:
if c1 != c2:
url1 = 'https://www.xxxddd.com/voos=' + c1 + c2 + date[0] + c2 + c1 + date[1] + ';c:USD;e:1;sd:1;t:f'
urls.append(url1)
def scrape (url) :
options = Options()
driver =
webdriver.Chrome(r'J:\Bi\Python\chromedriver_win329\chromedriver.exe', chrome_options=options)
driver.implicitly_wait(100)
driver.get(str(url))
driver.set_script_timeout(10000)
driver.implicitly_wait(300)
list = []
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'gws-flights-results__times-row')))
for a in driver.find_elements_by_class_name(r'gws-flights-results__times-row'):
a = a.text
driver.implicitly_wait(20)
list.append(a)
driver.implicitly_wait(20)
df1 = pd.DataFrame({'Hora': list})
list = []
for a in driver.find_elements_by_class_name(r'gws-flights-results__airports'):
driver.implicitly_wait(20)
a = a.text
list.append(a)
df2 = pd.DataFrame({'Trajeto': list})
df = pd.concat([df1, df2, df3, df4, df5], axis='columns')
driver.close()
return df
dffinal = pd.DataFrame([])
contagem = 0
for url1 in urls :
try:
df3 = scrape(url1)
dffinal = pd.concat([dffinal, df3])
contagem += 1
print(int(contagem/122*100) + "% pronto!")
except:
pass
dffinal = dffinal.reset_index(drop=True)
print(dffinal)
writer = pd.ExcelWriter('J:/Eco/Passagens/outpassagens1.xlsx')
dffinal.to_excel(writer, 'Sheet1')
writer.save()
Когда я делаю это, у меня возникает проблема с пустым массивом данных:
J: /Eco/database/Bianca/Base/coleta_passagens.py: 50: Предупреждение об устаревании: использование
параметры вместо драйвера chrome_options =
webdriver.Chrome (r'J: \ Bi \ Python \ chromedriver_win329 \ chromedriver.exe ', chrome_options = параметры,
chrome_options = options) Пустые столбцы DataFrame: [] Индекс: []