# EC.presence_of_element_located((By.CSS_SELECTOR, "product-slider__img js-product-current-img"))
EC.presence_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
options = Options()
service = Service(r'D:\project\chromedriver-130.0.6723.93.exe')
driver = webdriver.Chrome(service=service, options=options)
url = 'https://superstep.ru/product/NCFSW0W288YW_GRA/#colorGRA'
driver.get(url)
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))
)
page_html = driver.page_source
print(page_html)
except TimeoutException:
print("Элемент не найден")
finally:
print('Программа завершена')
driver.quit()
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
options = Options()
service = Service(r'D:\project\geckodriver.exe')
driver = webdriver.Firefox(service=service, options=options)
url = 'https://superstep.ru/product/NCFSW0W288YW_GRA/#colorGRA'
driver.get(url)
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))
)
page_html = driver.page_source
print(page_html)
except TimeoutException:
print("Элемент не найден")
finally:
print('Программа завершена')
driver.quit()
$ curl https://codeforces.com/
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge">
Пришел к тому что буду вручную гулять по нужным страницам и собирать инфу, но опять же встал вопрос как сохранять код незаметно.
// ==UserScript==
// @name Super script
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Super script description
// @author Spamer
// @match *://*/*
// @grant none
// ==/UserScript==
(function() {
function savePageAsHTML() {
const htmlContent = document.documentElement.outerHTML;
const blob = new Blob([htmlContent], {type: 'text/html'});
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'page.html';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
// load
window.addEventListener('load', () => {
savePageAsHTML();
});
// load + timer
window.addEventListener('load', () => {
setTimeout(savePageAsHTML, 10000);
});
})();
API должен убедиться что запросы получает с сайта а не из других источников (curl,postman,php).
Блокировать открытие сайта в эумляторов браузеров, например ломанный Selenium.
Остальные вопросы решает платная защита от Cloud Flare.
И возникает вопрос, а может ли сервер как то обнаруживать использование mitm proxy?
Вопрос: как по запросу (после отправки) посмотреть из каких источников этот ответ приходит?
Скрипт в целом работает, но работает медленно, а мне нужно проверить порядка 300.000 страниц. Подскажите пожалуйста, есть ли способы как то ускорить работу кода?
Помогите разложить это по полочкам.
Это должно быть что-то вроде робота, которые будет переходить от сайта к сайту по внутреннем ссылкам
или лучше сделать парсинг поисковой выдачи
(но как тогда сделать выдачу максимально разнообразной, ведь у меня нет конкретного поискового запроса?)?
При парсинге выдает ошибку 503. В чем может проблема?
Буду рад, если распишите более подробно, как обходить данную ошибку.
Я сильно сомневаюсь, что этот сайт без антибот защиты
Планирую сделать парсер букмекерской конторы
подскажите какие темы нужно поучить
есть начальные знания питона, остановился на списках, кортежах и тп