Цены Webscrape путем извлечения значений внутри класса div с помощью Beautiful Soup, Selenium и Pandas - PullRequest
1 голос
/ 28 сентября 2019

Я пытаюсь вернуть цену товара определенного размера, так как они меняются ежедневно.Я смог заставить свой код работать на веб-сайте, который использует «класс», но я не могу заставить его работать с div & span class.

Ссылка: https://www.flightclub.com/supreme-x-dunk-sb-low-varsity-red-varsity-red-white-black-152127?size=9.5 Цена: 550 долларов(по состоянию на этот пост)

from selenium import webdriver
from bs4 import BeautifulSoup                                                              
import pandas as pd                                                                        

driver = webdriver.Chrome("/Users/donlento7/chromedriver")                                 

products=[] #List to store name of the product                                             
prices=[] #List to store price of the product                                              
driver.get('https://www.flightclub.com/supreme-x-dunk-sb-low-varsity-red-varsity-red-white-black-152127?size=9.5')

content = driver.page_source                                                               
soup = BeautifulSoup(content, "lxml")                                                      
for a in soup.findAll('div',href=True, attrs={'class':'product-essential row-fluid product-type-configurable'}):
    name=a.find('div', attrs={'class':'mb-padding'})
    price=a.find('span', attrs={'class':'price'})                                      
    products.append(name.text)
    prices.append(price.text)

df = pd.DataFrame({'Product Name':products,'Price':prices})                                
#df.to_csv('products.csv', index=False, encoding='utf-8')                                  
print(df)

Вывод:

Empty DataFrame
Columns: [Product Name, Price]
Index: []

1 Ответ

0 голосов
/ 28 сентября 2019

Вы получаете ПУСТОЙ список из-за этой строки.

for a in soup.findAll('div',href=True, attrs={'class':'product-essential row-fluid product-type-configurable'}):

Нет атрибута href в теге div.

Измените это на:

for a in soup.findAll('div',attrs={'class':'product-essential row-fluid product-type-configurable'}):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...