mirror of
https://github.com/ada-dmitry/PyProg_ada.git
synced 2026-09-24 01:10:40 +00:00
48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
import psycopg2
|
|
import wget
|
|
from bs4 import BeautifulSoup
|
|
from selenium import webdriver
|
|
from selenium.webdriver.chrome.service import Service
|
|
import config
|
|
|
|
|
|
# Парсер и загрузчик в БД//Антипенко Дмитрий
|
|
connection = psycopg2.connect(
|
|
host=config.hostname, dbname=config.databname, user=config.username, password=config.passw)
|
|
|
|
cursor = connection.cursor()
|
|
|
|
creat_qwery = """ create table Parser
|
|
(id serial primary key, page_name varchar(100), price varchar(10), priceDis varchar(30), mark varchar(10), scr varchar(100))"""
|
|
|
|
cursor.execute(creat_qwery)
|
|
connection.commit()
|
|
|
|
driver = Service('D:\\teach\Prog\chromedriver.exe')
|
|
browser = webdriver.Chrome(service=driver)
|
|
browser.get(
|
|
'https://amwine.ru/catalog/igristoe_vino_i_shampanskoe/igristoe_vino/')
|
|
html_code = browser.page_source
|
|
b_soup = BeautifulSoup(html_code, 'lxml')
|
|
name = b_soup.find_all(
|
|
'a', class_="catalog-list-item__title js-product-detail-link")
|
|
price = b_soup.find_all('span', class_="middle_price")
|
|
priceDis = b_soup.find_all('span', class_="baseoldprice")
|
|
mark = b_soup.find_all('span', class_="product-rating__rating")
|
|
pictures = b_soup.find_all('div', class_="catalog-list-item__img-wrapper")
|
|
|
|
for i in range(15):
|
|
url = 'https://amwine.ru' + \
|
|
pictures[i].find('a').find('img').attrs['data-src']
|
|
filename = f"Python\\23.03\img\{i}.jpg"
|
|
print(filename)
|
|
wget.download(url, filename)
|
|
ins_qwery = f"""insert into public.Parser(page_name, price, priceDis, mark, scr) values ('{name[i].text}', '{price[i].text}', '{priceDis[i].text}', '{mark[i].text}', '{filename}')"""
|
|
cursor.execute(ins_qwery)
|
|
connection.commit()
|
|
|
|
|
|
cursor.close()
|
|
|
|
connection.close()
|