Почему я получаю эту проблему в python? - PullRequest
0 голосов
/ 21 марта 2020

** Сейчас я работаю над вторым проектом по утилизации в python. У меня проблема в том, что я не могу получить цены на авиабилеты с веб-сайта (веб-сайт будет в коде, точка в правильном направлении будет отличной. **

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline


from bs4 import BeautifulSoup
from selenium import webdriver
chromedriver_path = "/usr/bin/chromedriver"

browser = webdriver.Chrome(chromedriver_path)

sats = 'https://www.google.com/travel/explore?tfs=CBsQAxooagwIAhIIL20vMGZyMHQSCjIwMjAtMDQtMjByDAgEEggvbS8wMTYwdxooagwIBBIIL20vMDE2MHcSCjIwMjAtMDQtMjdyDAgCEggvbS8wZnIwdHABQAFIAQ&curr=USD&gl=us&hl=en&authuser=0&origin=https%3A%2F%2Fwww.google.com'
browser.get(sats)
browser.title

browser.save_screenshot('/home/UrbanGuide/Desktop/test_flights.png')


soup = BeautifulSoup(browser.page_source, "html5lib")


cards = soup.select('div[class*=tsAU4e]')
cards[0]

print(card.select('h3')[0].text)
print(card.select('span[class*=price]')[0].text)
#the line of code above gives me the error message:IndexError                                #Traceback (most recent call last)
#<ipython-input-173-c949e249e30b> in <module>
#      2 for card in cards:
 #     3     print(card.select('h3')[0].text)
#----> 4     print(card.select('span[class*=price]')[0].text)

#IndexError: list index out of range

1 Ответ

0 голосов
/ 21 марта 2020

Посмотрите на cards[0] (который, как я полагаю, вы хотели назначить card)

image

Учитывая, что card.select('span[class*=price]') вернет пустой список, поэтому индексирование 0-го элемента списка будет fail

Попробуйте проверить каждый элемент более внимательно, прежде чем пытаться извлечь информацию. Таким образом, вы можете увидеть, что вам на самом деле нужно искать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...