-
Автор темы
- #1
Alles Halli-Hallo, захотел написать бота для тг, который отправляет картинки котов. Решил написать парсер картинок, чтобы они скачивались фоново, при работе бота. Как только дело было сделано, то решил воспользоваться Heroku, но столкнулся с проблемой, что приложение может весить ограниченное количество мегабайт, поэтому идея с парсером отпала и я решил скинуть сюда, может быть кому-нибудь понадобится.
Теперь немного про настройки парсера для тех, кто не разбирается в яп, но, может быть, хотел бы воспользоваться:
Непосредственно сам код:
Теперь немного про настройки парсера для тех, кто не разбирается в яп, но, может быть, хотел бы воспользоваться:
Для удобства буду указывать расположение тех или иных вещей с помощью номера строки в основном файле:
1. Поддерживает только авторизацию через аккаунт пинтереста;
2. Для работы необходимо предварительно установить chromedriver - версию вашего браузера Chrome (
2.1 После установки драйвера, нужно указать абсолютный путь до файла с расширением .exe на месте "path" (на 11 строчке):
3. В дополнительном файле, который будет называться logs.py, необходимо указать логин и пароль, которые, соответственно, будут иметь названия для переменных "login_pin" и "pass_pin":
4. Необходимо указать ссылку на страницу, с которой вы хотите парсить картинки (на 8 строчке):
1. Поддерживает только авторизацию через аккаунт пинтереста;
2. Для работы необходимо предварительно установить chromedriver - версию вашего браузера Chrome (
Пожалуйста, авторизуйтесь для просмотра ссылки.
);2.1 После установки драйвера, нужно указать абсолютный путь до файла с расширением .exe на месте "path" (на 11 строчке):
3. В дополнительном файле, который будет называться logs.py, необходимо указать логин и пароль, которые, соответственно, будут иметь названия для переменных "login_pin" и "pass_pin":
4. Необходимо указать ссылку на страницу, с которой вы хотите парсить картинки (на 8 строчке):
Непосредственно сам код:
main.py:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from logs import *
# Link
url = "your link"
# Absolute path to chromedriver.exe
driver = webdriver.Chrome(executable_path="path")
try:
driver.get(url)
time.sleep(5)
login_button = driver.find_element(By.XPATH, "//div[@data-test-id='login-button']").click()
time.sleep(3)
# **Sing Up without google or facebook account**
email_input = driver.find_element(By.XPATH, "//input[@autocomplete='email']")
email_input.clear()
email_input.send_keys(login_pin)
time.sleep(5)
pass_input = driver.find_element(By.XPATH, "//input[@autocomplete='new-password']")
pass_input.clear()
pass_input.send_keys(pass_pin)
time.sleep(5)
sing_up_button = driver.find_element(By.CLASS_NAME, "SignupButton").click()
time.sleep(5)
for i in range(0, 20):
non_pin_images = driver.find_elements(By.XPATH, "//div[@data-test-id='non-story-pin-image']")
non_pin_images[i].click()
print('Картинка открыта')
time.sleep(5)
try:
other_button = driver.find_element(By.XPATH, "//div[@data-test-id='closeup-more-options']").click()
print('Другие варианты открыты')
time.sleep(3.5)
download_button = driver.find_element(By.XPATH, "//div[@data-test-id='pin-action-dropdown-download']").click()
time.sleep(3.5)
print(f'Изображение номер {i} успешно загрузилось')
driver.back()
time.sleep(5)
except Exception as ex:
print(ex)
finally:
continue
print('Все картинки скачаны')
# ////////////////////////////////////////
time.sleep(15)
except Exception as ex:
print(ex)
finally:
driver.close()
driver.quit()
logs.py:
login_pin = "your login"
pass_pin = "your pass"