Привет, я пытаюсь очистить таблицу с этого сайта https://vcx-forum.org/score, когда я попытался очистить с помощью красивого супа, он показывает ошибку 'NoneType' object has no attribute 'find'
Ниже мой фрагмент кода
from bs4 import BeautifulSoup
import requests
import pandas as pd
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
driver.get("https://vcx-forum.org/score")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
key = {}
data = []
html = driver.page_source
soup = BeautifulSoup(html, 'lxml')
for tag in soup.find_all('div', class_="vcx-ranking__body js-vcx-ranking-body"):
for span in tag.find_all('div', class_="t-row"):
for row in span:
model = row.find("div", class_="t_cell colCamera").find("a").text
rating = row.find("div", class_="t_cell colScore colVCX active").find("span",
class_="score_numeric").text
image_quality = row.find("div", class_="t_cell colScore colImageQuality").text
sunny = row.find("div", class_="t_cell colScore colBright").text
indoor = row.find("div", class_="t_cell colScore colMid").text
night = row.find("div", class_="t_cell colScore colImageLow").text
flash = row.find("div", class_="t_cell colScore colFlash").text
zoom = row.find("div", class_="t_cell colScore colZoom").text
perform = row.find("div", class_="t_cell colScore colHandling").text
key = {'model':[model],
'image_quality':[image_quality],
'sunny':[sunny],
'indoor':[indoor],
'night':[night],
'flash':[flash],
'zoom':[zoom],
'perform':[perform]
}
df = pd.DataFrame(key, columns = ['model', 'rating','image_quality', 'sunny',
'indoor', 'night', 'flash', 'zoom', 'perform'])
Я пробовал print (span.text) после строки for span, но он отображает только все внутри div-класса t-row, и я хочу, чтобы все было красиво разделено на имена столбцов
ИЗМЕНИТЬ:
AttributeError Traceback (most recent call last)
<ipython-input-63-f1da6a7e61dd> in <module>
16 for span in tag.find_all('div', class_="t-row"):
17 for row in span:
---> 18 model = row.find("div", class_="t_cell colCamera").find("a").text
19 rating = row.find("div", class_="t_cell colScore colVCX active").find("span",
20 class_="score_numeric").text
AttributeError: 'NoneType' object has no attribute 'find'