ScreenAvito_50_1_v3
Делает принскрины по ссылкам, выгружает на облачный ресурс для доступаuser_2065311
python
2 years ago
5.0 kB
11
Indexable
# изменил принцип названия скриншотов по окончанию ссылки а также добавил скрипт который можно использовать отдельно, а имеенно выгрузка скриншотов через API imgbb.com
import requests
import os
api_key = 'imgbbAPI= вставьте ключ' # Замените на ваш API ключ
url = 'https://api.imgbb.com/1/upload'
# Путь к папке с изображениями
folder_path = '/Users/wl/Desktop/screen'
# Перебор всех файлов в папке
for filename in os.listdir(folder_path):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
image_path = os.path.join(folder_path, filename)
# Отправляем запрос
with open(image_path, 'rb') as image:
response = requests.post(url, data={'key': api_key}, files={'image': image})
# Обрабатываем ответ
if response.status_code == 200:
data = response.json()
print(f"Изображение {filename} загружено: {data['data']['url']}")
else:
print(f"Ошибка при загрузке изображения {filename}")
# предъидущий скрипт в конце, в этом коде добавлен пользовательский интерфейс для ввода адресов и принтскринделается всей страницы, а не только видимой части.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from openpyxl import Workbook, load_workbook
from openpyxl.drawing.image import Image
from tkinter import Tk, simpledialog
import time
import os
def input_links():
root = Tk()
root.withdraw()
links = []
while True:
link = simpledialog.askstring("Ввод ссылки", "Введите ссылку (или оставьте пустым для завершения):")
if not link:
break
links.append(link)
return links
links = input_links()
# Путь к файлу Excel в текущей директории
excel_path = 'scr.xlsx'
# Создать новый файл Excel
workbook = Workbook()
sheet = workbook.active
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
for index, url in enumerate(links, start=1):
driver.get(url)
time.sleep(5)
page_height = driver.execute_script("return document.body.scrollHeight")
driver.set_window_size(1920, page_height)
time.sleep(2)
# Сохранение скриншота в текущей директории
screenshot_path = f'screenshot_{index}.png'
driver.save_screenshot(screenshot_path)
sheet.cell(row=index, column=2, value=url)
if os.path.exists(screenshot_path):
img = Image(screenshot_path)
img.width, img.height = 123, 160
sheet.add_image(img, f'C{index}')
workbook.save(excel_path)
driver.quit()
```
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from openpyxl import Workbook, load_workbook
from openpyxl.drawing.image import Image
import os
def get_ad_links(driver, url):
driver.get(url)
ad_elements = driver.find_elements(By.CSS_SELECTOR, "a[data-marker='item-title']")
links = [element.get_attribute('href') for element in ad_elements]
return links
def take_screenshot(url, driver, screenshot_path):
driver.get(url)
driver.save_screenshot(screenshot_path)
def insert_screenshot_to_excel(excel_path, screenshot_path, row):
workbook = load_workbook(excel_path)
sheet = workbook.active
img = Image(screenshot_path)
img.width, img.height = 123, 160 # Уменьшение размера изображения
cell = f'C{row}'
sheet.add_image(img, cell)
workbook.save(excel_path)
def main(url, excel_path):
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
ad_links = get_ad_links(driver, url)
row = 1
for ad_link in ad_links:
screenshot_path = f'screenshot_{row}.png'
take_screenshot(ad_link, driver, screenshot_path)
insert_screenshot_to_excel(excel_path, screenshot_path, row)
row += 1
driver.quit()
url = 'https://www.avito.ru/nizhniy_novgorod/kommercheskaya_nedvizhimost/prodam-ASgBAgICAUSwCNJW?context=H4sIAAAAAAAA_0q0MrSqLraysFJKK8rPDUhMT1WyLrYyNLNSKk5NLErOcMsvyg3PTElPLVGyrgUEAAD__xf8iH4tAAAA' #СМЕНИ ССЫЛКУ
excel_path = 'screenshots.xlsx' # файл для выгрузки результата
main(url, excel_path)
````Editor is loading...
Leave a Comment