Как поверить по списку рабочие ссылки ?

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Есть список ссылок в файле: result.txt
http://178.163.127.248:4022/udp/234.0.0.219:2000
http://178.163.17.248:4022/udp/234.0.0.219:2000
http://37.235.139.11:81/udp/225.50.69.5:1234
http://92.242.110.52:4022/udp/238.1.12.8:1234
Как поверить по списку рабочие ссылки и сохранить рабочие ?
Ответ должен быть : status 200
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 580
457
83
сохранить куда?
можно так, рабочие никуда не пишутся, просто пишется информация какая рабочая какая нет...
Python:
import requests


def work_url(url):
    try:
        print(url, requests.get(url), "Рабочая")
    except (requests.exceptions.ConnectTimeout, requests.exceptions.ConnectionError):
        print(url, "Не рабочая")


with open("result.txt", "r") as file:
    lst_url = file.readlines()

for i in lst_url:
    work_url(i)
 
Последнее редактирование:

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Большое спасибо regnor.
Скрипт работает. Медленно в скрипте появляется огромный список, где большинство - не рабочие.
Не совсем удобно потом оттуда выбирать - Рабочие.
Копировать их выборочно в новый текстовый документ - out_ok.txt
Можно ли сделать, чтобы во вновь созданный файл: out_ok.txt писались только рабочие ссылки ?
С Рождеством Вас. Здоровья. Удачи.
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
929
207
43
20
Москва
Большое спасибо regnor.
Скрипт работает. Медленно в скрипте появляется огромный список, где большинство - не рабочие.
Не совсем удобно потом оттуда выбирать - Рабочие.
Копировать их выборочно в новый текстовый документ - out_ok.txt
Можно ли сделать, чтобы во вновь созданный файл: out_ok.txt писались только рабочие ссылки ?
С Рождеством Вас. Здоровья. Удачи.
Python:
import requests

work_url_mas = []

def work_url(url):
    try:
        print(url, requests.get(url), "Рабочая")
        work_url_mas.append(url)
    except (requests.exceptions.ConnectTimeout, requests.exceptions.ConnectionError):
        print(url, "Не рабочая")


with open("result.txt", "r") as file:
    lst_url = file.readlines()

for i in lst_url:
    work_url(i)
    
with open("out_ok.txt", 'w') as f:
    f.write('\n'.join(work_url_mas))
 

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Спасибо Vershitel_sudeb
Скрипт сработал. Но в файл: out_ok.txt
Который я сам создал и положил рядом со скриптом, ничего не записалось
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 580
457
83
Спасибо Vershitel_sudeb
Скрипт сработал. Но в файл: out_ok.txt
Который я сам создал и положил рядом со скриптом, ничего не записалось
ну вообще все работает...
если файл пустой, то рабочих ссылок нет..
добавьте заведомо рабочую ссылку и проверьте, он ее запишет...
 
  • Мне нравится
Реакции: Vershitel_sudeb

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Спасибо.
Беру проверенную рабочую ссылку: http://178.163.58.46:4022/udp/234.0.0.1:2000
Вставляю её в result.txt
Запускаю скрипт. Ничего не записывается в out_ok.txt
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
929
207
43
20
Москва
Спасибо.
Беру проверенную рабочую ссылку: http://178.163.58.46:4022/udp/234.0.0.1:2000
Вставляю её в result.txt
Запускаю скрипт. Ничего не записывается в out_ok.txt
Я посмотрел, у вас файлы большие и неизвестного размера, скрипт может работать долго, используйте это:
Python:
import requests

work_url_mas = []

def work_url(url):
    try:
        with requests.get(url, stream=True) as s:
            print(url, s, "Рабочая")
        work_url_mas.append(url)
    except:
        print(url, "Не рабочая")



with open("result.txt", "r") as file:
    lst_url = file.readlines()

for i in lst_url:
    work_url(i)

print('\nПроверка завершена')
with open("out_ok.txt", 'w') as f:
    f.write('\n'.join(work_url_mas))
Отличие в том, что контент по ссылке не будет загружаться разом, и, следовательно, работать будет быстрее
 

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Спасибо Vershitel_sudeb.
Ваш вариант скрипта отлично работает и реально быстрее.
Здоровья и удачи.
 
  • Мне нравится
Реакции: Vershitel_sudeb

Форум IT Специалистов