Сценарии в порядке. Однако, когда вы прокручиваете страницу до конца, загрузка данных таблицы данных занимает некоторое время. Вам нужно добавить некоторую задержку time.sleep(5)
, чтобы получить больше записей. Кроме того, я получаю 510
записи.
webdriver=webdriver.Chrome()
webdriver.get('https://www.bluenile.com/diamonds/round-cut')
WebDriverWait(webdriver,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"#diamond-result")))
webdriver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
#Added some delay
time.sleep(5)
data=BeautifulSoup(webdriver.page_source,'html5lib')
shape=[]
price=[]
carat=[]
cut=[]
color=[]
clarity=[]
date=[]
table=data.find('div',{'class':'grid-body'})
data_shape=table.find_all('span',{'class':'single-cell'})
for items in data_shape:
shape.append(items.getText())
data_price=(table.find_all('div',{'class':'row-cell price'}))
for items in data_price:
price.append(items.getText())
data_carat=(table.find_all('div',{'class':'row-cell carat'}))
for items in data_carat:
carat.append(items.getText())
data_cut=(table.find_all('div',{'class':'row-cell cut'}))
for items in data_cut:
cut.append(items.getText())
data_color=(table.find_all('div',{'class':'row-cell color'}))
for items in data_color:
color.append(items.getText())
data_clarity=(table.find_all('div',{'class':'row-cell clarity'}))
for items in data_clarity:
clarity.append(items.getText())
data_date=(table.find_all('div',{'class':'row-cell date'}))
for items in data_date:
date.append(items.getText())
print(len(shape))
print(len(price))