Budget: 3500 UAH Deadline: 5 days
Добрый день, можно реализовать обход сloadflare что снимет кеширование.
Цель проект - получить некэшированные ответы для их парсинга на следующих сайтах:
Сайты (смотреть страницы товаров):
- https://www.endclothing.com/eu/
- https://www.sneakersnstuff.com/
Примеры ссылок:
Первый веб-сайт "END" - https://www.endclothing.com/eu/nike-air-max-720-818-ci3871-300.html или https://api2.endclothing.com/eu/rest/V1/end/catalog/link?link=%252Feu%252Fnike-air-max-720-818-ci3871-300.html&storeId=3
Второй сайт "SNS" - https://www.sneakersnstuff.com/en/product/40771/jordan-brand-air-jordan-3-retro-se
Cейчас в ответ на request сайта "END" мы получаем(скрин прилагаю):
cache-control: max-age=600
Cейчас в ответ на request сайта "SNS" мы получаем(скрин прилагаю):
cache-control: private
cf-cache-status: DYNAMIC
Задача: в ответ на request получать:
Cache-Control: max-age=0 или no-cache,
Pragma: no-cache
предпочтительно, используя Python requests или другое - открыт для предложений.
Budget: 3500 UAH Deadline: 5 days
Добрый день, можно реализовать обход сloadflare что снимет кеширование.
Защиты все проходим, но не удается получить некешированные страницы.
То, что получаем - это кешированные, о чем и говорит response headers с моих скринов.
Я понимаю, что эти настройки со стороны владельца сайта, но все таки ищу способ обойти их)
cloudflare це мережа проксі серверів розкиданих по всьому світі, щось подібне на тор(якщо знаєти), а кешують вони сторінку, для збереження трафіка, щоб обійти це потрібно взнати IP сервера, а якщо його хтось взнає, це значить що cloudflare хтось ставив косячно
або так )
https://docs.pylonsproject.org/projects/pylons-webframework/en/latest/caching.html
це потрібно взнати IP сервера = от спробуйте це з google - відома айпішка. Чи з будь яким іншим сайтом, який кешує дані = чи у Вас це вийде знаючи реальну айпіху сайту )))
Як програміст для сайта написав = тобто в респонзі додаються ці параметри max-ege=100 = наприклад (https://stackoverflow.com/questions/23112316/using-flask-how-do-i-modify-the-cache-control-header-for-all-output)
ось таке наприклад
https://stackoverflow.com/questions/32235706/python-requests-module-caching-websites
чи з cachecontrol ліби для пайтона уже нічого не рішає
чи рішає ? ))) = ось питання для Вас )))
Ну по суті що кешувати рішає кліент ,тобто браузер, і оператори які економлять трафік.
Коли йде запрос до сервера під cloudflare, то це відбувається якось так
[кліент] => [проксі сервер] => [кінцевий сервер]
Щоб получити доступ до реального сервера (кінцевий сервер), потрібно пройти провірки проксі сервера(це і рекапча, і відповідність заголовків запроса до потрібного формата, і провірка IP в спам базах і базах DDOS,бо Cloudflare це защіта від DDOS а не від парсінга),вродіби якщо скопірувати куки з браузера, і послати в запросі то це поможе(ну це не точно), ну це чуточку костильно)
,вродіби якщо скопірувати куки з браузера, і послати в запросі то це поможе(ну це не точно), ну це чуточку костильно)
=
не поможе )))
Ну по суті що кешувати рішає кліент НІ рішає не користувач а той, хто створює свій ресурс. і рішає він ось таким одним із способів:@app.after_request def add_header(response): response.cache_control.max_age = 300 return responseякщо такого немає і є наскірзий трафік = то аж тоді (якщо ці дири не перекриті кодом) - то рішає користувач ось таким можливим способомheaders = { 'cache-control': 'private, max-age=0, no-cache' }
Ну ви коли відправляєти запрос до сервера, сервер відповідає, збережіть в кеші картінки(тобто збережіть на жосткім диску), ви їх не зберігаєти, бо бібліотека яку використовуєти для запросів, понятія немає про цей заголовок, тобто самий кліент рішає чи зберігати йому цю картінку, браузери їх канешно зберігають.
ось тут я і підвів Вас до рішення - сервер в кінцевій меті вирішує де ви і для кого ці кеші ставите а не Ви, чи Ваш браузер )))
Тобто розробник сайту може для Вас дозволити, щоб ви собі ці кеші ЛОКАЛЬНО установили, або ж цей розробник буде Вам слати кешовані дані , які зашиті в нього в коді хардкордно (response.headers.cachecontrol:max-age=300) і Ви це НІЯК не зміните уже = які б параметри не слали, куди б не слали = Ви отримуватимете одну і ту ж відповідь.
От якщо розробник сайту встановлює що його респонс хедер змінюється в залежності від Вашого реквест хедеру = тоді ТАК - тоді Ви можете якось на це вплинути
але якщо розробник вирішує від Вас ховати дані на 1 добу реальні = то цей розробник дасть Вам кеш своїх даних .
і як не старайтеся - не отримаєте реальних його даних = ну принаймі не таким чином )) треба БД ломати сайту а не реквестами )))
Вам проксі сервер шле кеш https://prnt.sc/rjtm2j, тобто самий Cloudflare
Cloudflare ви канешно не взломаєти
Ну якщо знайдети реальний IP сайта на якому немає Cloudflare https://prnt.sc/rjtkp9
Там один сайт під https://ru.wikipedia.org/wiki/Akamai_Technologies другий https://www.cloudflare.com/ , ну корочім вам повезло)))
Ну якщо знайдети реальний IP сайта на якому немає Cloudflare = так = я взяв для прикладу свій самописний сайт
на моєму сайті є
HTTP/1.1 200 OK
Date: Fri, 20 Mar 2020 18:55:25 GMT
Server: Apache
X-Powered-By: PHP/5.3.29
Expires: Fri, 20 Mar 2020 17:55:25 GMT
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Content-Encoding: gzip
Vary: Accept-Encoding
Upgrade: h2,h2c
Connection: Upgrade, Keep-Alive
Last-Modified: Fri, 20 Mar 2020 17:55:25 GMT
Keep-Alive: timeout=3, max=100
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
ось це
Cache-Control: post-check=0, pre-check=0
то поміняйте реквестом , чи в реквест хедері в параметрах чи в куках задайте,щоб отримати відповідь не таку з респонс хедера Cache-Control: post-check=0, pre-check=0
а наприклад ось таку
Cache-Control: max-age=0
сайт = soh15.com
зможете поміняти ? ))))
Не канешно, це вже на уровні сервера,https://prnt.sc/rju11m
А смисл вам з цього заголовку?Ну відправить сервер цей заголовок, ну ваша бібліотека цього заголовка не пойме
Тобто ви хочете ламанути https://ru.wikipedia.org/wiki/Akamai_Technologies 😅 😄 , з всіма потрохами
А смисл вам з цього заголовку? = в тому то і суть ))) що ніякої користі ))))
є різні типи кешів = на даний момент їх біля 123 типів. і всі вони діляться шрубо на 4 категорії.
ми, користувачі, можемо управляти тільки однією з них = і то якщо програміст-розробник для нас це передбачив )))
а от розробники = ясен пень що всіма можуть управляти ))
https://tproger.ru/translations/cache-levels-on-the-web/
http://xmlhack.ru/texts/06/doing-http-caching-right/doing-http-caching-right.html
вы можете получать и не кешированые, это правило которое говорит браузеру чтобы он придержал у себя кеш на это время.
у меня без кеша https://paste.pics/56ca42d14d66909bdbd372e36a507391
что именно вы там делаете?
попробовал, -- хитро сделано.
основная задача у вас попарсить немного картинок?
Задача - парсить инфу о товарах, картинки в том числе. Для этого уже есть скрипт на питоне, но сайт отдаёт кешированные страницы, а нас нужно получить некешированные, чтобы response header был no-chache или max-age=0
если просто на сайт - то да, все параметри ок, без кеша. а Ви зайдите на страницу конкретного товара = получите и блоки и кеши )))
Все защиты мы проходим успешно и Парсинг работает ок, вопрос именно в кеше - читайте описание проекта внимательно и смотрите скрины!
возвращаемые заголовки предназначены для клиента.
cache-control: max-age=600 говорит браузеру, что он (браузер) может держать кеш максимум 10 минут, private\public указывают это же для проксей по пути следования пакетов.
этот заголовок не говорит, что серверный кеш был сформирован 10 минут назад.
с вас триста долларов за консультацию.
почитайте вначале доки по кешам , какие то мануали по http протоколам ))))))))))))))))))))))))))))))))
возвращаемые заголовки предназначены для клиента.
cache-control: max-age=600 говорит браузеру, что он (браузер) может держать кеш максимум 10 минут, private\public указывают это же для проксей по пути следования пакетов.Ну тут він правий
cache-control: max-age=600 говорит браузеру, что он (браузер) может держать кеш максимум 10 минут,
cache-control: max-age=600 говорит браузеру, что он (браузер) может держать кеш максимум 10 минут,
але що з того ? я поняв що воно так і є = але це не вирішує поставленої таски = отримати нам в респонс хедері max-age=0
от задайте так параметри = з будь якої мови програмування, з будь якого пакету так = щоб було в респонс хедері max-age=0
Ви не получите такого результата, сервер(проксі) налаштований так і всьо.
Може ваший оператор який інтернет вам роздає кешує ці дані для економії трафіку, попробуйте VPN
от про то і йшлося з самого початку в цій тасці ))))))))))))))
Ви не получите такого результата, сервер(проксі) налаштований так і всьо. = ото ж бо й воно !!! = я ж так і писав раніше ))) що власники тих ресурсів віддають щось типу того = response.header.cache-control:max-age=600 - і це не змінити уже ))) це як Танос-невідворотній з Месників )))))))))))
Може ваший оператор який інтернет вам роздає кешує ці дані для економії трафіку, попробуйте VPN - це не важливо уже бо так сервер настроїний, і без всяких там захистів =і все ))) vpn пробували і т д )))
Може ваший оператор який інтернет вам роздає кешує ці дані для економії трафіку, попробуйте VPN - це не важливо уже бо так сервер настроїний, і без всяких там захистів =і все ))) vpn пробували і т д )))
Ну це важливо, бо якщо у вас оператор екомить трафік, коли ви парсити сайт ви відправляєти один запрос і получаєти відповідь від сервера max-age=600 , то ваший оператор може закешувати цю відповідь до свого кеша і в подальшому надсилати відповідь на ваший запрос з свого кеша
МІЙ оператор НЕ КЕШУЄ )))
є в мене 4 оператори - я бачу які кешують, а які НІ)))
і задача не в ому полягає, а в іншому )))
я здесь читаю https://tools.ietf.org/html/rfc7234 от 4.2 Calculating Freshness Lifetime , а вы где?
неужели в http/2 кеши так сильно изменились?
напишите как нам иметь в респонс хедерах cache-control: max-age=0 )))
а не то что Ви пишите )))
А як ви обходите защіту , за допомогою емуляції браузера(selenium і тому подібних)?
ні, по іншому )))
клаудфюрі та амакамі по іншому обходимо = нестандартне рішення = не як інші привикли = в лоб, а по іншому )
Трохи деякі деталі непонятні, якщо наприклад ви не використовуєти браузер, то нащо вам кеш по суті.
Якщо наприклад проксі кешує(яка знаходиться між вами і справжнім сервером) в свій кеш, то та проксі , перед надсилає до справнього сервера запрос, і провіряє коректність даних(тобто перевіряє хеш своїх даних, і хеш даних на сервері), якщо дані коректні то відправляє дані до вас.
Якщо ви наприклад використовує прямий запрос до сервера, то смисл вам даного заголовка, сервер вам надіслав заголовки що маєти зберегти в кеш певні дані, ну ви не маєти підкорятися серверу і зберігати ті дані в кеш, бо його як такого то немає в бібліотеці яку ви використовує(я точно незнаю яку ви бібліотеку використовуєти),ви просто надсилає ще один такий самий запрос до сервера і всьо , а сервер хай собі шле всьо що йому треба, це просто текст і всьо, для протокола http )))
Якщо вам потрібні дані наприклад не з кешу самого сервера, а напряму, а смисл цього, я думаю адміністратор сервісу мав подумати щоб вам всігда приходили актуальні дані, бо по суті їм ж треба якось обновляти ціну наприклад на товар.
мы тут не обучаем фрилансеров, а сами хотим получить ответ на свой вопрос)
Та мені не дуже цікаве рішення, просто хтів взнати які решення використуються для обхода защіти, без цього неможна дати коректної відповід
можем продать Вам решение за деньги))
тут же коммерческая биржа, не форум по интересам)
Вы же тоже не бесплатно выполняете работу по проектам)
sneak-prod-main-primary-m-1135616142.eu-west-1.elb.amazonaws.com
Увы доступ из мира закрыт.
И не такое бывало, вот у nordvpn экспайрился сервисный домен и его перехватывали.
A specialist is needed to collect and structure open information about sellers from marketplaces. It is necessary to determine the possibility of automated data collection and to form a database of sellers. In your response, please indicate: which marketplaces you have experience working with; what data you can obtain (seller name, link, categories, rating, number of products, other available fields); examples of similar projects.
Technical task Project Configuration of filling and synchronization of two Prom.ua stores with suppliers of auto parts. Task It is necessary to implement the loading and updating of products from auto parts suppliers for two online stores on Prom.ua. ⸻ 1. Connecting suppliers It is necessary to connect suppliers through: Supplier API; XML, CSV, XLS price lists; or another available method of obtaining products from the supplier's website. It is important to ensure complete synchronization of products between the supplier and the Prom.ua stores. ⸻ 2. Filtering and selection of products It is necessary to implement the ability to select products during import based on the following parameters: Car brand; Category of parts; Subcategory of parts; Other available characteristics. Example: For each store, there should be the ability to separately determine which categories of products and which car brands need to be loaded. Additional requirements for product selection It is necessary to implement the ability to select products during import not only by car brands and categories of parts but also by product availability status. There should be the ability to configure the following scenarios: Import only products that are in stock with the supplier; Do not import products with the status "out of stock"; Disable or remove products from Prom.ua after they are out of stock with the supplier. During pricing configuration, there should be the ability to combine filters: By car brand; By category of parts; By subcategory; By product availability. Example: Import only parts for Volkswagen and Audi, category "Braking system", that are in stock with the supplier. It is also necessary to implement a mechanism to prevent duplication of products from different suppliers. If the same product is present with multiple suppliers, only one product record should be imported into the catalog. Criteria for selecting a product when duplicates are detected: Priority is given to the product that is in stock with the supplier; If the product is in stock with several suppliers, priority is given to the product with the lowest price; If the cheapest product is out of stock, the system should choose the cheapest product among those that are in stock; Duplicate products from other suppliers should not create separate entries in the catalog. Example: Import only parts for Volkswagen and Audi, category "Braking system", that are in stock with the supplier. If the same part is available from several suppliers, only one entry is imported into the catalog — from the supplier with the lowest price among those who have the product in stock. ⸻ 3. Import of product cards During import, the following should be automatically loaded: Product name; Article; Photos; Product description; Price; Product characteristics; Manufacturer; Other available parameters. ⸻ 4. Updates It is necessary to set up automatic: Price updates when changed by the supplier ⸻ 5. Removal of unavailable products Products that are no longer in stock with the supplier should: Be disabled; or Be removed from Prom.ua (by agreement). ⸻ 6. Filling the stores It is necessary to: Create a category structure; Create subcategories; Correctly distribute products across categories; Check the correctness of product import. ⸻ 7. Work results After the work is completed, there should be: Suppliers connected; Product import configured; Price updates configured; New product addition configured; Disabling or removal of unavailable products configured; Prom.ua stores fully filled and ready for operation.
A Telegram bot is needed for automatic searching and monitoring of "BUY IT NOW" cars at auctions in the USA (Copart, IAAI). The bot should operate automatically and send notifications about new cars that meet the specified filters.Main functionalityFilter settings: 1. Car brand; 2. Model; 3. Year of manufacture (from/to); 4. Fuel type; 5. Engine volume; 6. Mileage; 7. Price range; Bot functions: 1. Automatic monitoring of new lots; 2. Checking for updates every 1-2 minutes; 3. Protection against duplicate notifications (anti-duplicate); 4. Ability to add and remove filters through the bot menu; 5. Saving settings of already existing car searches. Message format: 1. Photo of the car (4 photos); 2. Title and lot number; 3. Year of manufacture; 4. Mileage; 5. Engine type and volume; 6. Buy it now price; 7. Link to the lot.
Scrape the full catalog of these websites: https://svit-mebliv.ua/ https://kompanit.com.ua/ru https://amia.com.ua/ https://mebliromax.com.ua/ https://pehotin.com.ua/catalog/ https://www.sokme.ua/ru/ All products need to be combined into one general table for import into WP. Each product should be in two languages (UA+RU). There are also variable products, which should be saved as variations in the basic WP functionality. Import to the site can be done through plugins or a custom solution, so the format of the table can be discussed.