Валидность проксей я чекаю стандартной python библиотекой requests и сайтов по типу ip6only.me . Работают любые ipv6 socks5 прокси, кроме поднятых мной. Может проблема всё таки на стороне сервера?
Юрий, да неважно где лежит текст. Вот конкретный пример, решите задачу, чтоб был принт ‘ok’ в обоих случаях: https://notepad.pw/734aq7j
Частично решил таким способом: https://notepad.pw/2adv5202 , но это работает не со всеми вариантами. В последнем цикле текст остаётся без изменений
ScriptKiddo, вот этот вариант очень близок к правде. Я сначала так и сделал, но оказалось что это работает не со всеми шрифтами. Вот готовый код с примерами текста. В последнем цикле текст почему-то остаётся без изменений. Код залил в нотпад: https://notepad.pw/2adv5202
OCR, Tesseract - определяют текст по картинке. Где я тут писал что у меня картинка? Про файнридер вообще молчу. Обычный тхт. Формат строк - str, кодировка utf-8. Питон их правильно берёт и отображает, но не позволяет работать как с обычным текстом. Надо каким-то образом преобразовывать к обычному шрифту.
Руслан ., так это обычная кодировка utf-8. Открывается хоть нотпадом, хоть блокнотом. Но из за разных шрифтов питон не может работать с такими строками. Их надо как-то преобразовать в обычный вид. А консоль выдаёт кучу кракозябр при type. Но пайчарм их правильно отображает. Вопрос в том, как их преобразовать питоном, после взятия строки
iegor, вряд ли это решит проблему. Например SQL, Maria db - точно так же лежат. У меня логика и запросы весьма своеобразны: каждый запрос - это селект и апдейт какой то уникальной ячейки, т.е в этот момент база должна быть залочена от других потоков (сразу перед селектом), и затем соответственно, должна сохранить изменения; а если в ней 100кк строк - сохранение идет долго, и куча потоков ждут очереди. Редис с этим бы справился, но нужно знать как юзать этот модуль. Какую базу в таком случае посоветуешь? Если бы были обычные запросы с селектами, то всё работает нормально. Но в этом случае я не задавал бы здесь этот вопрос.
То есть можно посылать запросы на UPDATE с тысячи потоков, и не будет никакой ошибки и повторов? Тысяча потоков должна брать тысячу строк, изменять в них значение в одной колонке, и не должно быть такого, что два потока возьмут две одинаковых строки.
Спасибо) Третий вариант почти подошел, только есть несколько не рабочих моментов. Вот этот код:
SELECT f.* FROM table
f JOIN ( SELECT RAND() * (SELECT max(id) from table) AS max_id )
AS m WHERE f.id >= m.max_id
ORDER BY f.id ASC LIMIT 1 ;
1) Для работоспособности этого кода, RAND должен возвращать рандомное число от 0 до 1. в sqlite RAND не так работает. в нём есть только RANDOM, который возвращает рандомное число от -9 до +9. следовательно, строки будут браться не верно. На крайний случай, это число можно рандомить в python, и затем передавать в запрос. Но может есть решение и в sqlite?
2) На счёт маркера (колонки) "Обработано" и индекс на нее - я так и хотел сделать. Но в этот запрос не получается вставить такое условие. вылетает ошибка. В каком месте кода нужно вставить это условие, чтоб правильно работало?
SELECT f.* FROM table
...
WHERE status = "Обработано"
...