Лайфхаки

Маленькие, полезные хитрости

Амазон блокирует все парсеры?

13.03.2022 в 23:09

Амазон блокирует все парсеры?

Несколько месяцев я использовал обычный парсер товаров амазона, PHP+CURL+PROXY, работало все нормально, и вот сегодня где-то после обеда все поломалось, в смысле код не изменялся и все работало стандартно, но амазон на запрос какой либо страницы (хоть напрямую, хоть через один из тысяч прокси) выдает 503…
Раньше такого не было, чтобы все все ответы 503.
Подскажите кто сталкивался, думаю здесь есть те кто так же парсит амазон, как решить данную проблему? Или это у них время от времени бывает такой заскок?
Ведь через браузер заходит нормально, а через curl, вот пример

$ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); $headers=array( 'Host: www.amazon.de', 'User-Agent: '.$user_agent, 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language: en-US;q=0.5,en;q=0.3', 'Accept-Encoding: gzip, deflate, br', 'Referer: https://www.amazon.de/', 'Connection: keep-alive', 'Upgrade-Insecure-Requests: 1' ); curl_setopt($ch,CURLOPT_HTTPHEADER,$headers); curl_setopt($ch,CURLOPT_USERAGENT,$user_agent); curl_setopt($ch,CURLOPT_TIMEOUT,30); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,FALSE); curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE); curl_setopt($ch,CURLOPT_HEADER,TRUE); curl_setopt($ch,CURLOPT_POST,FALSE); curl_setopt($ch,CURLOPT_ENCODING,""); $content=curl_exec($ch); curl_close($ch);

никак не хочет, только 503 ответ, и повторюсь это произошло сегодня а раньше такого не было…
так что если у кого-то есть вариант решения данной проблемы то подскажите если не сложно.

Amazon Parser python. Textract Response Parser

You can use Textract response parser library to easily parser JSON returned by Amazon Textract. Library parses JSON and provides programming language specific constructs to work with different parts of the document. textractor is an example of PoC batch processing tool that takes advantage of Textract response parser library and generate output in multiple formats.

Installation

python -m pip install amazon-textract-response-parser

Pipeline and Serializer/Deserializer

Serializer/Deserializer

Based on the marshmallow framework, the serializer/deserializer allows for creating an object represenation of the Textract JSON response.

Deserialize Textract JSON

Serialize Textract

Deserialize Textract AnalyzeId JSON

Serialize Textract AnalyzeId object to JSON

Pipeline

We added some commonly requested features as easily consumable components that modify the Textract JSON Schema and ideally don't require big changes to any existing workflow.

The sample implementationorder_blocks_by_geoof a function using the Serializer/Deserializer shows how to change the structure and order the elements while maintaining the schema. This way no change is necessary to integrate with existing processing.

# the sample code below makes use of the amazon-textract-caller python -m pip install amazon-textract-caller

Page orientation in degrees

Amazon Textract supports all in-plane document rotations. However the response does not include a single number for the degree, but instead each word and line does have polygon points which can be used to calculate the degree of rotation. The following code adds this information as a custom field to Amazon Textract JSON response.

Using the pipeline on command line

The amazon-textract-response-parser package also includes a command line tool to test pipeline components like the add_page_orientation or the order_blocks_by_geo.

Here is one example of the usage (in combination with theamazon-textractcommand from amazon-textract-helper and thejqtool ( https://stedolan.github.io/jq/ ))

> amazon-textract --input-document " s3://somebucket/some-multi-page-pdf.pdf " | amazon-textract-pipeline --components add_page_orientation | jq ' .Blocks | select(.BlockType=="PAGE") | .Custom ' m { " Orientation " : 7 } { " Orientation " : 11 } … { " Orientation " : -7 } { " Orientation " : 0 }

Merge or link tables across pages

Sometimes tables start on one page and continue across the next page or pages. This component identifies if that is the case based on the number of columns and if a header is present on the subsequent table and can modify the output Textract JSON schema for down-stream processing. Other custom-logic is possible to develop for specific use cases.

The MergeOptions.MERGE combines the tables and makes them appear as one for post processing, with the drawback that the geometry information is not accuracy any longer. So overlaying with bounding boxes will not be accuracy.

The MergeOptions.LINK maintains the geometric structure and enriches the table information with links between the table elements. There is a custom and custom attribute added to the TABLE blocks in the Textract JSON schema.

Usage is simple

Using from command line example

# from the root of the repository cat src-python/tests/data/gib_multi_page_table_merge.json | amazon-textract-pipeline --components merge_tables | amazon-textract --stdin --pretty-print TABLES # compare to cat src-python/tests/data/gib_multi_page_table_merge.json | amazon-textract --stdin --pretty-print TABLES

Add OCR confidence score to KEY and VALUE

It can be useful for some use cases to validate the confidence score for a given KEY or the VALUE from an Analyze action with FORMS feature result.

The Confidence property of a BlockType 'KEY_VALUE_SET' expresses the confidence in this particular prediction being a KEY or a VALUE, but not the confidence of the underlying text value.

Парсер сайтов в excel. Парсинг сайтов

Парсинг — это сбор и обработка контента с сайта или из файлов, с выводом результата в файл (например, в таблицу Excel).Парсинг сайтов подразумевает перебор веб-страниц, анализ их HTML-кода, преобразование данных к нужному виду, вывод полученных значений, а также загрузку (скачивание) файлов.

Наша команда с 2013 года специализируется на парсинге сайтов , как на наиболее востребованном направлении касательно автоматизации работы с Excel.

Мы создали (и продолжаем развивать) специализированный плагин для Excel —, позволяющую легко и гибко автоматизировать процесс парсинга всевозможных сайтов, с выводом результата в таблицы Microsoft Excel.

На нашем сайте вы можете:

  • заказать настройку программы-парсера под интересующие вас сайты
    Как заказать парсер сайта (
  • скачать готовые (ранее настроенные) парсеры

    Примеры настроенных парсеров (можно скачать, запустить, посмотреть настройки)

  • самостоятельно настроить парсер под свою задачу, изучив справку по программе

    Скачать пробную версию программы «Парсер сайтов»
    Справка по программе «Парсер сайтов»

  • заказать парсер XML файлов, парсер PDF файлов, а также файлов формата Word, HTML и TXT

Если вас интересует мониторинг цен конкурентов на сайтах, — эта задача тоже легко решается парсером.Подробнее об услуге и ценах на неё, написано на отдельном сайте: price-monitoring.ru

Наш парсер очень гибко настраивается под любую задачу, — можно взять любой контент с любого сайта, и вывести результат в любом виде.

Сайт блокирует парсер. Используйте прокси

Человек, использующий браузер, вряд ли будет запрашивать с одного сайта 20 страниц в секунду. Поэтому, если вы собираетесь запрашивать с одного сайта большое количество страниц, то надо заставить сайт думать, что запросы идут от разных пользователей т.е. с разных IP адресов. Другими словами, вам необходимо использовать прокси .

Сегодня прокси стоят не очень дорого: ~ 1 доллар за IP. Однако, если вам нужно делать более чем 10 тысяч запросов в день на одном и том же веб-сайте, то затраты могут сильно вырасти, ведь вам потребуются сотни адресов. Следует учитывать, что IP-адреса прокси-серверов должны постоянно мониториться, чтобы отбросить тот, который выключился, и заменить его.

На рынке есть несколько прокси-решений, наиболее часто используемые из них: Luminati Network , Blazing SEO и SmartProxy .

Конечно, существует множество бесплатных прокси, но я не рекомендую их использовать, поскольку они часто бывают медленными, ненадежными, и сайты, предлагающие эти списки, не всегда прозрачны в отношении того, где эти прокси расположены. Чаще всего бесплатные прокси общедоступны, и поэтому их IP-адреса будут автоматически заблокированы большинством веб-сайтов. Качество прокси-сервера важно, так как сервисы для борьбы с парсингом содержат внутренний список прокси-IP-адресов. И любой трафик с этих IP-адресов будет заблокирован. Будьте внимательны, выбирайте прокси-сервис с хорошей репутацией. Вот почему я рекомендую пользоваться платными прокси или же создать свою собственную прокси-сеть.

Для создания такой сети в можете использовать scrapoxy , отличный API с открытым исходным кодом, позволяющий создавать прокси-API поверх различных облачных провайдеров. Scrapoxy создаст пул прокси путем создания экземпляров у различных облачных провайдеров ( AWS , OVH, Digital Ocean). Затем вы сможете настроить свой клиент таким образом, чтобы он использовал URL- адрес Scrapoxy в качестве основного прокси-сервера, а Scrapoxy автоматически назначит прокси-сервер в пуле прокси. Scrapoxy легко настраивается в соответствии с вашими потребностями (ограничение скорости, черный список и т.д.), но его настройка может быть немного утомительна.

Не стоит забывать о существовании такой сети, как TOR, также известной как Onion Router . Это всемирная компьютерная сеть, предназначенная для маршрутизации трафика через множество различных серверов, чтобы скрыть его происхождение. Использование TOR сильно затрудняет слежку за сетью и анализ трафика. Существует множество способов использования TOR, для сохранения конфиденциальности, свобода слова, защита журналистики в режимах диктатуры и, конечно, незаконная деятельность. В контексте веб-поиска TOR может скрыть ваш IP-адрес и менять IP-адрес вашего бота каждые 10 минут. IP-адреса узлов выхода TOR являются общедоступными. Некоторые веб-сайты блокируют трафик TOR, используя простое правило: если сервер получает запрос от одного из публичных выходных узлов TOR, он блокирует его. Вот почему во многих случаях TOR проигрывает по сравнению с классическими прокси. Стоит отметить, что скорость трафика через TOR будет намного медленнее из-за множественной маршрутизации.