import psycopg2 import wget from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.chrome.service import Service import time i = 1 s = Service("С:\DATA\ChromeDriver\chromedriver.exe") browser = webdriver.Chrome(service=s) browser.get("https://www.mvideo.ru/noutbuki-planshety-komputery-8/noutbuki-118/f/tolko-v-nalichii=da?from=under_search") time.sleep(5) """ height = browser.execute_script("return document.body.scrollHeight") time.sleep(4) for i in range(10): browser.execute_script(f"window.scrollTo(0, {1000*i})") time.sleep(1) """ html_text = browser.page_source soup = BeautifulSoup(html_text, 'lxml') productst = soup.find_all('a', class_="product-title__text") pricest = soup.find_all('span', class_="price__main-value") features = soup.find_all('span', class_="product-feature-list__value") pictures = soup.find_all('div', class_="product-picture-container") connection=psycopg2.connect(host='localhost', dbname='dbdata', user='postgres', password='Q1w2e3r4') cursor = connection.cursor() """ insert = CREATE TABLE public.laptops( id serial primary key, product varchar(100), price varchar(15), diagonal varchar(5), resolution varchar(20), CPU varchar(50), RAM varchar(15), Graphics_Controller varchar(40), Volume varchar(25), src varchar(100) ); """ insert = """TRUNCATE TABLE public.laptops; ALTER SEQUENCE laptops_id_seq RESTART WITH 1;""" cursor.execute(insert) connection.commit() for i in range(len(productst)): url = "https://"+pictures[i].find('img')['src'] filename = f"C:\DATA\Images\{i+1}.jpg" u = [] for j in range(10): u.append(features[10*i+j].text) wget.download(url, filename) t = pricest[i].text.replace("\xa0", " ") insert = f"""INSERT INTO public.laptops( product, price, diagonal, resolution, CPU, RAM, Graphics_Controller, Volume, src) VALUES ('{productst[i].text.strip()}', '{t.strip()}', '{u[0][:u[0].find("/")]}', '{u[0][u[0].find("/")+1:]}', '{u[2]}', '{u[4]+" "+u[5]}', '{u[6]}', '{u[8]}', '{filename}');""" cursor.execute(insert) connection.commit() cursor.execute("select * from laptops") print("Результат", cursor.fetchall()) cursor.close() connection.close()