mirror of
https://github.com/KUlishevgeniy/c22712.git
synced 2026-09-24 08:00:22 +00:00
db connection added, image parsing added
This commit is contained in:
@@ -1,40 +1,28 @@
|
|||||||
# установи python, pip
|
|
||||||
|
|
||||||
# выполни эту команду: pip install selenium bs4 lxml
|
|
||||||
# если ты используешь pycharm, то надо библиотеки ставить не в консоли(терминале), а в самом pycharm
|
|
||||||
# для этого нажми "view" > "tool windows" > "python packages"
|
|
||||||
# внизу в окне поиска ищи нужные библиотеки
|
|
||||||
# когда найдешь, нажимай на нее, справа будет кнопка "install package", устанавливай, потом перезапусти pycharm
|
|
||||||
|
|
||||||
# найди версию своего браузера
|
|
||||||
# напиши в гугле "скачать драйвер для <название и версия твоего браузера> selenium"
|
|
||||||
# теперь все готово для запуска этого
|
|
||||||
# помните, что сам сайт(который вы хотите парсить) может вас блокировать или заставлять проходить capture, из-за чего этот код ничего не выведет
|
|
||||||
|
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
from selenium import webdriver
|
from selenium import webdriver
|
||||||
from selenium.webdriver.chrome.service import Service
|
from selenium.webdriver.chrome.service import Service
|
||||||
# импортируем всё нужное
|
from wget import download
|
||||||
|
import psycopg2 as psyc
|
||||||
|
|
||||||
s = Service("путь_до_драйвера") # в ковычках указываем полный путь до скаченного ранее драйвера
|
|
||||||
# если ты на винде, то вместо знака "\" пиши "\\"
|
|
||||||
|
|
||||||
brow = webdriver.Chrome(service=s) # как будто создаем виртуальный браузер
|
brow = webdriver.Chrome()
|
||||||
|
url = "https://ikey.ru/"
|
||||||
|
brow.get(url)
|
||||||
|
|
||||||
brow.get("https://www.revshells.com/") # получаем html код сайта и другую информацию(она нам не нужна сейчас)
|
html = brow.page_source
|
||||||
|
|
||||||
html = brow.page_source # копируем html код в переменную
|
soup = BeautifulSoup(html, "lxml")
|
||||||
|
|
||||||
soup = BeautifulSoup(html, "lxml") # создаем специальный парсер
|
products = soup.find_all(attrs={"class": "product"})
|
||||||
|
|
||||||
buttons = soup.find_all(attrs={"class": "list-group-item list-group-item-action"})
|
with psyc.connect(dbname="db_for_parse", user="perfecto") as conn:
|
||||||
# получаем список всех html тегов, в которых есть атрибут "class", равный: "list-group-item list-group-item-action"
|
with conn.cursor() as cursor:
|
||||||
|
for i, product in enumerate(products):
|
||||||
for button in buttons:
|
img_tag = product.find(attrs={"class": "imagef"}).find("img")
|
||||||
# выводим текст каждого тега
|
title = img_tag.attrs.get("alt")
|
||||||
print(button.text)
|
image = url + img_tag.attrs.get("src")
|
||||||
|
download(url + img_tag.attrs.get("src"), f"images/{i}.jpg")
|
||||||
# от сердца и почек
|
|
||||||
# дарю вам питончик
|
|
||||||
# made by perfecto
|
|
||||||
|
|
||||||
|
cursor.execute(f"insert into images(link, name) values ('{image}', '{title}')")
|
||||||
|
|
||||||
|
conn.commit()
|
||||||
|
|||||||
Reference in New Issue
Block a user