Как найти теги div на веб-сайте с несколькими вкладками - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь извлечь данные со следующего веб-сайта с несколькими информационными вкладками: https://www.cryptocompare.com/coins/abt/overview. Меня интересует только информация на информационных вкладках "ICO", но я не могу найти все теги div под этой информацией. tab

Я попытался найти все теги div с class = info-box, но он возвращает только информацию, содержащуюся в первой информационной вкладке «Details» на сайте. Я предполагаю, что это потому, что вся информация "ICO" скрыта при открытии веб-сайта. Мой текущий код выглядит следующим образом, что позволяет мне извлекать информацию только из таблицы «Подробности»

from lxml import html
import requests
import pandas as pd
import time
import re
from selenium import webdriver
from bs4 import BeautifulSoup


url = "https://www.cryptocompare.com/coins/abt/overview"
browser.get(url)


html_source = browser.page_source
data = html_source.encode('utf-8')
soup = BeautifulSoup(data,"lxml")

ICO = soup.find_all("div", class_="info-box")
print (ICO)

Пожалуйста, помогите найти теги div на вкладке информации «ICO»

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Я бы использовал условие ожидания и селектор атрибута = значение, чтобы выбрать вкладку для щелчка, щелкнуть ее, а затем использовать показанную комбинацию селектора css

from bs4 import BeautifulSoup as bs
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Chrome()
browser.get("https://www.cryptocompare.com/coins/abt/overview")
WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '[aria-controls="tab-content-1"]'))).click()
soup = bs(browser.page_source, 'lxml')
browser.quit()
print([i.text.strip() for i in soup.select('.coin-properties .ng-binding')])

enter image description here

0 голосов
/ 04 октября 2019
page = requests.get(url)
if page.status_code == 200:
   soup = BeautifulSoup(page.content, 'lxml')
   details = soup.find_all('div', class_ ='col-md-4 col-sm-4 col-xs-6 ng-scope')

Я не проверял свой код, но приведенное выше должно дать вам всю информацию.

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