Задать вопрос
@theSever

Скрипт python долго думает перед началом, как исправить?

На питоне программирую уже целых пол ночи)))) Короче перенес с пыхи на питон чекер url, но раскачивается как-то он долго, ни черта не пойму.

#!/usr/bin/env python

# coding: utf-8

import requests

from requests.exceptions import ConnectionError


domainfile = open("url.txt", "r")
otchot = open("chek.txt", "w")

headers = {
           'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0',
           'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
           'Accept-Language' : 'en-en,ru;q=0.8,en-us;q=0.5,en;q=0.3',
           'Accept-Encoding' : 'gzip, deflate',
           'Connection' : 'keep-close',
          }

def pars_header(url):
    try:
        r = requests.get(url, headers=headers)
        return r.status_code
    except ConnectionError:
        return 0

for theurl in domainfile:
    theurl = theurl.strip()
    result = pars_header('http://'+theurl)
    if result == 200:
        otchot.write(theurl+":ok\n")
    elif result == 0:
        otchot.write(theurl+":error\n")
    else:
    	otchot.write(theurl+":none\n")

otchot.close()
domainfile.close()

print "End!"


ps
так же буду благодарен если кто ни будь покажет как вывести в консоль статистику о количестве обработанных линков.
  • Вопрос задан
  • 551 просмотр
Подписаться 3 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 3
@nirvimel
Он не думает, он работает. Чтобы наблюдать прогресс, нужно выводить otchet не только в файл, но и в консоль.
Перед каждой строчкой:
otchot.write(theurl+": ok\n")
Можно дописать еще:
print(theurl+": ok\n")
И с остальными ошибками также.
А перед запросом
result = pars_header('http://'+theurl)
Можно добавить
print(theurl+": processing ...")
Чтобы видеть то, над чем он работает в данный момент.
Ответ написан
@Norkotik
Может распараллелить?
Ответ написан
Комментировать
@alexZzZzZzZ
У меня только одна просьба. Не называйте переменные транслитом.
Если проблемы с языком, лучше лишний раз воспользоваться переводчиком.
otchot = report или log
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы