Моя цель — разобрать страницу предложения «funpay.com». Это должно быть легко, потому что все имена предложений находятся внутри одного класса 'tc-item'
.
Однако я не могу использовать запросы bs4+, потому что эта страница загружается только в том случае, если вы вошли в систему, что я делаю с помощью файлов cookie (selenium+pickle
).
Не знаю, как это сделать вообще, поэтому буду признателен за любые подсказки.
Код, который я пробовал:
driver.get("https://funpay.com/orders/trade")
soup = bs(driver.page_source, 'html.parser')
try:
paid = soup.find_all('a', class_='tc-item')
for sold in paid:
title = sold.find('div', class_='tc-order') # inside 'a',
# prints the code of offer
print(title)
except Exception as ex:
print(ex)
1 ответ
Основываясь на довольно тонкой отправной точке, я подозреваю, что это ошибка, возникающая во время итераций, поэтому вот что я бы сделал.
Чтобы не отбрасывать все сразу, проверяйте внутри цикла, доступен ли искомый элемент или нет, и давайте выводить результат соответственно.
...
soup = bs(driver.page_source, 'html.parser')
paid = soup.find_all('a', class_='tc-item')
for sold in paid:
title = sold.find('div', class_='tc-order').text if sold.find('div', class_='tc-order') else 'no element found'
print(title)
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.