Как я могу очистить веб-страницу, на которой есть товары с множеством вариантов (цвет, размер, цены)? [закрыто] ⇐ Python
-
Гость
Как я могу очистить веб-страницу, на которой есть товары с множеством вариантов (цвет, размер, цены)? [закрыто]
Предположим, что отображаемый продукт — красная рубашка маленького размера (S) стоит 800 рупий, а количество доступных штук — 50. На странице также отображается та же рубашка зеленого, синего и желтого цветов. Если мы выберем желтую рубашку и средний размер, цена и количество доступных штук изменяются в зависимости от наличия на складе. Я могу получить данные только для Red Shirt. Пожалуйста, найдите изображение для лучшего понимания. Изображение страницы. URL-адрес на странице останется прежним, если выбраны продукты разных цветов.
МОЙ КОД
запросы на импорт импортировать CSV из bs4 импорт BeautifulSoup время импорта имя файла = "extractdata.csv" из веб-драйвера импорта селена из службы импорта selenium.webdriver.chrome.service из selenium.webdriver.support.ui импортировать WebDriverWait из selenium.webdriver.support импортируйте ожидаемые_условия как EC из веб-драйвера импорта селена из параметров импорта selenium.webdriver.chrome.options из selenium.webdriver.common.by импортировать заголовок = ['название'] ответ = Requests.get('url') #print(ответ.текст) суп = BeautifulSoup(response.text, 'html.parser') title = Soup.find("meta", property="og:title") описание = суп.найти("мета", свойство="og:description") title1 = заголовок["содержание"] описание1 = описание["содержание"] драйвер = webdriver.Chrome () driver.get("URL") тексты = [] h1 = driver.find_elements(By.CLASS_NAME, 'title--wrap--Ms9Zv4A')#Название продукта h2 = driver.find_elements(By.CLASS_NAME, 'sku-item--text--s0fbnzX')# Размеры продукта h3 = driver.find_elements(By.CLASS_NAME, 'quantity--info--Lv_Aw6e')#Количество частей h4 = driver.find_elements(By.CLASS_NAME, 'sku-item--selected--RWc6VW_ sku-item--text--s0fbnzX') elem=driver.find_element(By.XPATH,"//meta[@name='description']") print('используя селен') для продукта в h1: texts.append(product.text) для продукта2 в h2: texts.append(product2.text) для продукта3 в h3: texts.append(product3.text) для продукта4 в h4: texts.append(product4.text) # Здесь мы можем увидеть, что находится в списке текстов print('Все тексты:', тексты) print('используя селен2') l = driver.find_element(By.CLASS_NAME,'sku-item--text--s0fbnzX' ) print('наверху, чтобы нажать') л.клик print('Страница перемещается после щелчка: ' + driver.title) print('вот заголовок' + title1 ) url = Soup.find("meta", property="og:url") print(title["content"] if title else "Мета-заголовок не указан") print(url["content"] if url else "Мета-URL не указан") печать ('gptitle' + заголовок["содержание"]) # открываем файл в режиме записи #with open(filename, 'w') as f: f = открыть (имя файла, 'w') # создаем модуль записи csv писатель = csv.writer(f) # записываем строку в csv-файл писатель.писатель([title1]) писатель.писатель([описание1]) писатель.писатель([тексты]) е.закрыть Ожидаемое поле в формате CSV показано на изображении. Я могу получить вывод только до столбца M, как показано на рисунке. Expected_output
Предположим, что отображаемый продукт — красная рубашка маленького размера (S) стоит 800 рупий, а количество доступных штук — 50. На странице также отображается та же рубашка зеленого, синего и желтого цветов. Если мы выберем желтую рубашку и средний размер, цена и количество доступных штук изменяются в зависимости от наличия на складе. Я могу получить данные только для Red Shirt. Пожалуйста, найдите изображение для лучшего понимания. Изображение страницы. URL-адрес на странице останется прежним, если выбраны продукты разных цветов.
МОЙ КОД
запросы на импорт импортировать CSV из bs4 импорт BeautifulSoup время импорта имя файла = "extractdata.csv" из веб-драйвера импорта селена из службы импорта selenium.webdriver.chrome.service из selenium.webdriver.support.ui импортировать WebDriverWait из selenium.webdriver.support импортируйте ожидаемые_условия как EC из веб-драйвера импорта селена из параметров импорта selenium.webdriver.chrome.options из selenium.webdriver.common.by импортировать заголовок = ['название'] ответ = Requests.get('url') #print(ответ.текст) суп = BeautifulSoup(response.text, 'html.parser') title = Soup.find("meta", property="og:title") описание = суп.найти("мета", свойство="og:description") title1 = заголовок["содержание"] описание1 = описание["содержание"] драйвер = webdriver.Chrome () driver.get("URL") тексты = [] h1 = driver.find_elements(By.CLASS_NAME, 'title--wrap--Ms9Zv4A')#Название продукта h2 = driver.find_elements(By.CLASS_NAME, 'sku-item--text--s0fbnzX')# Размеры продукта h3 = driver.find_elements(By.CLASS_NAME, 'quantity--info--Lv_Aw6e')#Количество частей h4 = driver.find_elements(By.CLASS_NAME, 'sku-item--selected--RWc6VW_ sku-item--text--s0fbnzX') elem=driver.find_element(By.XPATH,"//meta[@name='description']") print('используя селен') для продукта в h1: texts.append(product.text) для продукта2 в h2: texts.append(product2.text) для продукта3 в h3: texts.append(product3.text) для продукта4 в h4: texts.append(product4.text) # Здесь мы можем увидеть, что находится в списке текстов print('Все тексты:', тексты) print('используя селен2') l = driver.find_element(By.CLASS_NAME,'sku-item--text--s0fbnzX' ) print('наверху, чтобы нажать') л.клик print('Страница перемещается после щелчка: ' + driver.title) print('вот заголовок' + title1 ) url = Soup.find("meta", property="og:url") print(title["content"] if title else "Мета-заголовок не указан") print(url["content"] if url else "Мета-URL не указан") печать ('gptitle' + заголовок["содержание"]) # открываем файл в режиме записи #with open(filename, 'w') as f: f = открыть (имя файла, 'w') # создаем модуль записи csv писатель = csv.writer(f) # записываем строку в csv-файл писатель.писатель([title1]) писатель.писатель([описание1]) писатель.писатель([тексты]) е.закрыть Ожидаемое поле в формате CSV показано на изображении. Я могу получить вывод только до столбца M, как показано на рисунке. Expected_output
Мобильная версия